friend 们,我是 Java-Collection 的新手。我想问 Collections.sort()
方法是否仅用于/由 List
类型的集合使用。我无法对以下代码进行排序:
Collection collection=new HashSet();
collection.add("zebra");
collection.add("frog");
collection.add("bison");
collection.add("puma");
Collections.sort(collection); //error...why??
我知道 HashSet
用于唯一元素。但是有什么办法可以对这个集合进行排序吗?
最佳答案
Collections.sort
method期望一个实现 List<T>
的集合界面。这是有道理的,因为列表有一个定义的顺序。换句话说,您的程序可以完全控制列表中内容的顺序。
与列表不同,集合要么无序,要么指定它们自己的特定顺序。这就是为什么要对 Set
进行排序的原因没有意义:是集合而不是您的程序定义了集合中项目的顺序。您的程序可以提供自定义该排序的逻辑,但您不能采用现有集合,并从外部强制对其项目进行不同的排序。
如果您想按排序顺序获取集合集合的所有项目,请将您的集合复制到数组列表中,然后对结果进行排序。
关于java - collections.sort 方法仅用于 List 类型的集合吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23474574/