collections.sort方法只用于List类型的集合?

JPG*_*JPG 4 java collections

朋友们,我是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??
Run Code Online (Sandbox Code Playgroud)

我知道这HashSet用于独特的元素.但有没有办法对这个系列进行排序?

das*_*ght 10

Collections.sort方法需要一个实现List<T>接口的集合.这是有道理的,因为列表具有已定义的序列.换句话说,您的程序可以完全控制列表中的内容顺序.

与列表不同,集合可以是无序的,也可以指定自己的特定顺序.这就是为什么尝试排序a Set没有意义:定义集合集合中项目的顺序是集合而不是程序.您的程序可以提供自定义该顺序的逻辑,但您不能使用现有的集合,并从外部强制对其项目执行不同的顺序.

如果要按排序顺序获取集合集合中的所有项目,请将集合复制到数组列表中,然后对结果进行排序.