【发布时间】:2017-08-08 07:06:34
【问题描述】:
我有一个使用 ArrayLists 的 List[] 实现的邻接列表。我想按 ArrayLists 大小的降序对列表进行排序。我想我会通过写一个比较器来做到这一点......但我该怎么做呢?或者这是不可能的,我应该用另一种方式来做?
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()吗?所以你有一个ArrayLists 的数组,你正在尝试使用Collections.sort对数组进行排序...?
标签: java list sorting arraylist comparator