我对转换时使用什么标准对 Set 进行排序感兴趣?这怎么能被覆盖?因为,据我了解,Set 不存储排序信息。我正在谈论的转换示例:
Set<Object> objectsSet = new HashSet<>();
Objects[] objectsArray = (Objects[]) objectsSet.toArray();
最佳答案
未排序。 LinkedHashSet
保留插入顺序; HashSet
将由 hashCode()
订购在内部。如果你想要一个排序的 Set
, 使用 TreeSet
(实现 SortedSet
)。
SortedSet<Object> objectsSet = new TreeSet<>();
Objects[] objectsArray = (Objects[]) objectsSet.toArray();
至于改变顺序(升序或降序),你可以使用 TreeSet(Comparator<? super E> comparator)
在构建 Set
时.例如,对整数进行倒序排序;
SortedSet<Integer> intSet = new TreeSet<>(Comparator.reverseOrder());
关于java - 转换为 Array 时 Set 项的排序顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57835045/