2016-11-30 49 views
1

我有一個ArrayList<ArrayList<Integer>>,我想排序它,所以我將按字典順序列出所有列表。Java中按字典順序排列整數ArrayList ArrayList

例如:

列表排序之前(逗號分隔從其他一個列表):2 6 8,1 3 6,1 2 8

我想的排序後獲得:1 2 8 ,1 3 6,2 6 8

我看到了,我可以用Collections.sort但看到它僅在只有一個指標比較值:

Collections.sort(lists, new Comparator<ArrayList<Integer>>(){ 
    public int compare(ArrayList<Integer> list1, ArrayList<Integer> list2){ 
     return list1.get(0).compareTo(list2.get(0)); 
    } 
}); 

但與我的結果將是錯誤(1 3 6,1 2 8,2 6 8)。

是否有可能使用類似這種結構的東西來比較列表中的所有值而不是一個值?所有列表具有相同的大小。

回答

2

只是遍歷在Comparator兩個集合: (這不檢查長度相同,你可能需要添加它)

Collections.sort(lists, new Comparator<ArrayList<Integer>>(){ 
    public int compare(ArrayList<Integer> list1, ArrayList<Integer> list2){ 
     int result = 0; 
     for (int i = 0; i <= list1.size() - 1 && result == 0; i++) 
     { 
      result = list1.get(i).compareTo(list2.get(i)); 
     } 
     return result; 
    } 
}); 
+0

謝謝兩位的回答和糾正我的拼寫。 :) – Halep

相關問題