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