java - 转换为 Array 时 Set 项的排序顺序

标签 java arrays sorting arraylist set

我对转换时使用什么标准对 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/

相关文章:

java - GridBagLayout 中的 JTextPane 的行为不符合预期

java - 如何模拟 Spring WebClient 和构建器

java在centos 6.5升级后返回VM错误

c++ - 表达式必须是struct的可修改左值

algorithm - 根据维基百科,为什么冒泡排序的总空间复杂度是 O(1)?

java - 如何修复 "Prefs file removed in background/home/steven/.java/.userPrefs/prefs.xml"错误?

java - 如何有效地对一个数组进行排序

使用随机数创建自定义数组大小

java - 在java中对键/值列表进行排序的最快方法

javascript - 在javascript中使用其中一个的值对2个数组进行排序