在java中按值对HashSet进行排序

时间:2013-12-16 19:15:05

标签: java sorting hashset

是否有一个HashSet附带的方法允许它自己排序,而不是编写算法来排序它?我知道文档http://docs.oracle.com/javase/7/docs/api/java/util/HashSet.html有一个迭代器,但实际上是如何实现的呢?

1 个答案:

答案 0 :(得分:2)

HashSet迭代器未排序,因为它只是按原样输出垃圾箱。实际上,更改类的实现,加载因子或任何其他参数几乎总是改变迭代器的顺序。但是,您可以将设置值包装在List中,并使用Collections.sort(List)Collections.sort(List, Comparator)对其进行排序:

import java.util.Arrays;
import java.util.Collections;
import java.util.HashSet;
...
HashSet<? extends Comparable> myHashSet = ...;
...
List<? extends Comparable> sortedList = Arrays.asList(myHashSet.toArray(new Comparable[0]));
Collections.sort(sortedList);