【问题标题】:In what order Set items are sorted when converting to Array转换为 Array 时,Set 项按什么顺序排序
【发布时间】:2020-01-10 02:25:37
【问题描述】:

我对转换时使用什么标准对 Set 进行排序感兴趣?这怎么能被覆盖?因为,据我了解, Set 不存储排序信息。我正在谈论的转换示例:

    Set<Object> objectsSet = new HashSet<>();
    Objects[] objectsArray = (Objects[]) objectsSet.toArray();

【问题讨论】:

标签: java arrays sorting arraylist set


【解决方案1】:

未排序。 LinkedHashSet 保留插入顺序; HashSet 将在内部由 hashCode() 订购。如果您想要一个已排序的Set,请使用TreeSet(实现SortedSet)。

SortedSet<Object> objectsSet = new TreeSet<>();
Objects[] objectsArray = (Objects[]) objectsSet.toArray();

至于改变顺序(升序或降序),可以在构造Set时使用TreeSet(Comparator&lt;? super E&gt; comparator)。例如,对整数进行倒序排序;

SortedSet<Integer> intSet = new TreeSet<>(Comparator.reverseOrder());

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-26
    • 1970-01-01
    • 1970-01-01
    • 2020-06-22
    相关资源
    最近更新 更多