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