如何根據自定義所需的順序對包含列表作為元素的數組列表進行排序

桑托什·帕達瓦拉

我有一個數組列表,就像
List<List<Integer>> res = new ArrayList();
經過一些處理後,我的 res 數組列表將包含
[1, 1, 2]
[1, 1]
[1, 2]
[1]
[2]
這些元素,但我想要排序順序,看起來像
[ 1]
[1 1]
[1 1 2]
[1 2]
[2]

所以我所做的是

   Collections.sort(res,new Comparator<List<Integer>>(){
        public int compare(List<Integer> o,List<Integer> s){
            int c=0;
            //c=o.size().compareTo(s.size());
            //if(c==0){
                for(int i=0;i<Math.min(s.size(),o.size());i++){
                    c=o.get(i).compareTo(s.get(i));
                    if(c!=0) return c;
                }
           //}
        
            return c;
        }    
    });

但它不起作用

腰帶辛哈

嘗試比較列表的大小,而不是c在 結束時返回compare

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

class Main {

    public static void main(String[] args) {
        List<List<Integer>> list = new ArrayList<>();
        list.add(new ArrayList<>(Arrays.asList(1, 1, 2)));
        list.add(new ArrayList<>(Arrays.asList(1, 1)));
        list.add(new ArrayList<>(Arrays.asList(1, 2)));
        list.add(new ArrayList<>(Arrays.asList(1)));
        list.add(new ArrayList<>(Arrays.asList(2)));
        
        System.out.printf("Before: %s%n", list);
        
        Collections.sort(list, new Comparator<List<Integer>>() {
            public int compare(List<Integer> o, List<Integer> s) {
                for (int i = 0; i < Math.min(o.size(), s.size()); i++) {
                    int c = o.get(i).compareTo(s.get(i));
                    if (c != 0) {
                        return c;
                    }
                }
                return Integer.compare(o.size(), s.size());
            }
        });
        
        System.out.printf("After: %s%n", list);
    }

}

輸出:

Before: [[1, 1, 2], [1, 1], [1, 2], [1], [2]]
After: [[1], [1, 1], [1, 1, 2], [1, 2], [2]]

Dieser Artikel stammt aus dem Internet. Bitte geben Sie beim Nachdruck die Quelle an.

Bei Verstößen wenden Sie sich bitte [email protected] Löschen.

bearbeiten am
0

Lass mich ein paar Worte sagen

0Kommentare
LoginNach der Teilnahme an der Überprüfung

Verwandte Artikel

根據較長列表的順序對短列表進行排序

excel:根據另一列中的順序對十進制值列表進行排序

如何根據對象值對對像數組進行排序?

如何根據第二個或第三個單詞或類似的東西在python中按字母順序對句子列表進行排序

根據大小對數組javascript進行排序

如何根據屬性對對像數組進行排序

使用 Pandas,如何根據包含字符串元素列表中的字符串元素的所有值對錶格進行排序?

如何根據對象屬性對對象列表進行排序?

如何根據字母順序對單詞的dict進行排序

從整數對數組列表進行排序,然後倒序:Python

如何根據數組成員對集合進行排序

如何根據Vuejs中的Id對特定數組位置進行排序?

如何根據python中的特定屬性對列表中的子列表進行排序

根據元素的第一次出現對列表進行排序

你如何通過一個參數對數組列表中的對象進行排序,然後如果該參數與 Java 中另一個參數的順序相同?

我將如何對在 Java 中格式化為高度的字符串數組列表進行排序?

如何根據另一個字符串表定義的順序對一個字符串表進行排序(Lua)

Angular/RXJS,如何根據特定字符串值對 Observable 對像數組進行排序?

按其字段列表對數組進行排序

如何以與使用 php 創建數組的相反順序對數組進行排序?

根據條件(包含特定字符串)對數據進行分組

如何按最新到最舊的順序對文件列表進行排序

在谷歌表格中按自然順序對字母數字數據進行排序

根據第二行對二維數組進行排序

如何根據特定函數對數組進行分組?

在javascript中按字母順序對對像數組進行排序

按比率和字母順序對對像數組進行排序

根據最佳匹配另一個數組對對像數組進行排序

如何根據基於不同數組的具有 2 個屬性的對像對數組進行排序

TOP Liste

  1. 1

    So legen Sie mit dem Interface Builder unterschiedliche führende Speicherplätze für unterschiedliche Geräte fest

  2. 2

    Fügen Sie eine weitere Schaltfläche zu gwt Suggest Box hinzu

  3. 3

    Wie konvertiere ich einen Vektor von Bytes (u8) in eine Zeichenfolge?

  4. 4

    Wie kann ich in SCSS mehrere Klassen zu einer einzigen kombinieren?

  5. 5

    Wie konvertiert man einen Datenrahmen im langen Format in eine Liste mit einem geeigneten Format?

  6. 6

    Speichern Sie ein MPAndroidChart-Diagramm in einem Bild, ohne es in einer Aktivität anzuzeigen

  7. 7

    Gruppieren Sie Datenrahmenspalten nach ihrem Datum (die Spaltentitel enthalten) und fassen Sie die Instanzen von Einsen und Nullen in R . zusammen

  8. 8

    Tomcat - Leiten Sie den alten Kontextstamm zum neuen Kontextstamm um

  9. 9

    Eclipse Oxygen - Projekte verschwinden

  10. 10

    Wie wählt man Unterschiede mit drei Tabellen aus?

  11. 11

    Tic Tac Toe-Spiel im React-Reset-Button funktioniert nicht

  12. 12

    So berechnen Sie die Verfügbarkeit von Anwendungen (SLA)

  13. 13

    ElasticSearch BulkShardRequest ist aufgrund von org.elasticsearch.common.util.concurrent.EsThreadPoolExecutor fehlgeschlagen

  14. 14

    Wie kann ich den Kaskadenmodus global einstellen?

  15. 15

    Python: Spalten mit demselben Namen zusammenführen, wobei der Mindestwert beibehalten wird

  16. 16

    So erhalten Sie eine gleichmäßige Höhe für alle Eingabefelder

  17. 17

    Wie erstelle ich einen neuen übergeordneten Knoten außerhalb der .ref (/ path) in der Firebase-Echtzeitdatenbank mithilfe von Cloud-Funktionen (Typescript)?

  18. 18

    Was ist schneller: SUM über NULL oder über 0?

  19. 19

    Wie kann ich eine verschachtelte Schleife mit lapply in R ersetzen?

  20. 20

    Kann ich ein Tkinter-Canvas erstellen, das mehrere Zeilen in einem Text-Widget umfasst?

  21. 21

    Ärgerliches Problem mit yaml, das ich nicht lösen kann

heißlabel

Archiv