Java 在集合中排序cusom类型(集合<;MyType>;)
为什么我不能对集合进行排序myJava 在集合中排序cusom类型(集合<;MyType>;),java,set,Java,Set,为什么我不能对集合进行排序mySet?我的代码如下。当我使用ArrayList时,这段代码工作得很好,但当我使用任何类型的Set时,都会出现此错误 Set<Auto> set = new HashSet<Auto>(); set.add(auto1); set.add(auto2); set.add(auto3); set.add(auto4); set.add(auto5); Collections.sort(set, new Comparator<Auto&
Set
?我的代码如下。当我使用ArrayList
时,这段代码工作得很好,但当我使用任何类型的Set
时,都会出现此错误
Set<Auto> set = new HashSet<Auto>();
set.add(auto1);
set.add(auto2);
set.add(auto3);
set.add(auto4);
set.add(auto5);
Collections.sort(set, new Comparator<Auto>() {
@Override
public int compare(Auto o1, Auto o2) {
return o1.getMarka().compareTo(o2.getMarka());
}
});
Set Set=newhashset();
set.add(自动1);
set.add(自动2);
set.add(自动3);
set.add(自动4);
设置。添加(自动5);
Collections.sort(set,newcomparator(){
@凌驾
公共整数比较(自动o1、自动o2){
返回o1.getMarka().compareTo(o2.getMarka());
}
});
哈希集
不是有序集合;换句话说,它不包含特定顺序的元素
您可以将HashSet
视为包含对象的包。当你把手伸进并一个接一个地拉出物体时,你不知道是按什么顺序取出元素的。您不能对包中的元素进行排序,因为包没有按照您对它们进行排序的顺序保存它们
元素的顺序丢失;因此,对HashSet
进行排序没有任何效果(除了Collections.sort
采用列表而不是Mureinik注意到的Set
,因此您的代码甚至不会编译)
如果您需要集合中的元素具有特定的、已定义的顺序,请使用不同的集合
实现,例如树集
集合
没有顺序,因此无法对它们进行排序。如Javadoc中所示,收到一个列表
,而不是任何集合
请不要发布代码图像;只需将代码作为文本发布,并用4个空格缩进,以确保格式正确。