我有一個使用ArrayList的List []實現的鄰接列表。我想按照ArrayLists大小的降序對List進行排序。我想我會通過編寫一個比較器來做到這一點...但是,我會如何做到這一點?或者這是不可能的,我應該以另一種方式做到這一點?如何對ArrayList列表(不是數組)進行排序?
Collections.sort(adjacency, new Comparator<ArrayList<Integer>()>() {
public int compare(ArrayList<Integer> p1, ArrayList<Integer> p2) {
return Integer.compare(p1.length, p2.length);
}
});
頂部的代碼無法正常工作。我試着用一個ArrayList,List [],List作爲比較器類型。有沒有一個包裝類的列表?對不起,如果這聽起來可能沒有教養。
這是我如何使鄰接表:
List<Integer>[] adjacency;
adjacency = (List<Integer>[]) new List[size];
for (int i = 0; i < size; ++i) {
adjacency[i] = new ArrayList<Integer>();
}
謝謝。
不應'p1.length'爲'p1.size()'?所以你有一個'ArrayList'數組,你試圖使用'Collections.sort'對數組進行排序...? – MadProgrammer