如何对 ArrayLists 列表(不是数组)进行排序?

How to sort a List of ArrayLists (not arrays)?

我有一个使用 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 作为 Comparator 类型。列表有包装器 class 吗?对不起,如果这听起来没有受过教育。

我是这样制作邻接表的:

List<Integer>[] adjacency;
adjacency = (List<Integer>[]) new List[size];
for (int i = 0; i < size; ++i) {
    adjacency[i] = new ArrayList<Integer>();
}

谢谢。

The code on top is not functioning.

代码无效,因为 p1 和 p2 是 ArrayList,它们没有名为 length 的字段,它们有方法 size(),这就是您需要的。

return Integer.compare(p1.size(), p2.size());