Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 按大小对ArrayList中的集合进行排序_Java_Sorting_Set - Fatal编程技术网

Java 按大小对ArrayList中的集合进行排序

Java 按大小对ArrayList中的集合进行排序,java,sorting,set,Java,Sorting,Set,我想把所有的集合放在一个列表中,然后放在地图上,关键是大小。我知道一个集合的最大大小(给我),所以我可以在0和这个数字之间迭代,得到每个列表,然后迭代每个列表,并将每个集合放入arraylist中 然而,这看起来非常笨拙——有更好的方法吗?有什么方法可以根据大小来实现比较器功能吗 谢谢您可以为此提供一个解决方案。并使用Collections.sort() 除了另一个(完全有效)的答案外,我只想指出,您不需要显式定义新类,只需匿名创建一个: Collections.sort(myList, new

我想把所有的集合放在一个列表中,然后放在地图上,关键是大小。我知道一个集合的最大大小(给我),所以我可以在0和这个数字之间迭代,得到每个列表,然后迭代每个列表,并将每个集合放入arraylist中

然而,这看起来非常笨拙——有更好的方法吗?有什么方法可以根据大小来实现比较器功能吗

谢谢

您可以为此提供一个解决方案。并使用
Collections.sort()

除了另一个(完全有效)的答案外,我只想指出,您不需要显式定义新类,只需匿名创建一个:

Collections.sort(myList, new Comparator<Set<?>>() {
    @Override
    public int compare(Set<?> o1, Set<?> o2) {
        return Integer.valueOf(o1.size()).compareTo(o2.size());
    }
});

Collections.sort(myList,new Comparatorhmm,因此我正在排序的对象实际上是一个作为私有类实现的对象-此方法是否仍然适用?@praks5432添加了一些代码,以便您更容易理解:)小心此实现。我怀疑,将相同大小的项目返回到例如
TreeSet#add()
将导致项目被视为相同并被删除。
 [[A], [A, B]]
Collections.sort(myList, new Comparator<Set<?>>() {
    @Override
    public int compare(Set<?> o1, Set<?> o2) {
        return Integer.valueOf(o1.size()).compareTo(o2.size());
    }
});