如何对哈希集进行排序?

2022-08-31 08:12:56

对于列表,我们使用该方法。如果我们想对一个进行排序怎么办?Collections.sort(List)HashSet


答案 1

哈希集不保证其元素的任何顺序。如果需要此保证,请考虑使用树集来保存元素。

但是,如果您只需要为这次事件对元素进行排序,则只需临时创建一个 List 并对其进行排序:

Set<?> yourHashSet = new HashSet<>();

...

List<?> sortedList = new ArrayList<>(yourHashSet);
Collections.sort(sortedList);

答案 2

将所有对象添加到树集,您将获得一个排序集。下面是一个原始示例。

HashSet myHashSet = new HashSet();
myHashSet.add(1);
myHashSet.add(23);
myHashSet.add(45);
myHashSet.add(12);

TreeSet myTreeSet = new TreeSet();
myTreeSet.addAll(myHashSet);
System.out.println(myTreeSet); // Prints [1, 12, 23, 45]

更新

您还可以使用 TreeSet 的构造函数,它将 a 作为参数。HashSet

HashSet myHashSet = new HashSet();
myHashSet.add(1);
myHashSet.add(23);
myHashSet.add(45);
myHashSet.add(12);

TreeSet myTreeSet = new TreeSet(myHashSet);
System.out.println(myTreeSet); // Prints [1, 12, 23, 45]

感谢@mounika的更新。


推荐