gpt4 book ai didi

java - 我可以使用 Comparable 来使 TreeSet 有序吗?

转载 作者:行者123 更新时间:2023-11-30 08:38:48 26 4
gpt4 key购买 nike

Oracle文档中有一句话:

The elements are ordered using their natural ordering, or by a Comparator provided at set creation time, depending on which constructor is used

我想知道 Comparable 可以用来决定 TreeSet 的顺序,但我不知道如何证明我的想法,所以我不知道它是否正确。任何人都可以给我证明它是否正确的方法吗?任何代码或想法表示赞赏。

代码在这里是为了更好地解释我的问题。

final class Point implements Comparable<Point>{
/***************** override compareTo*****************/
public int compareTo(Point p){}
}

我想用一个 TreeSet 来包含这种对象。为了保持树的顺序(因为 TreeSet 使用红黑树作为其结构),我应该重写一些方法。该文档说我应该使用 Comparator 作为其基础顺序。但我认为 'Comparable' 也适用于在 TreeSet

中保留我自定义的顺序

最佳答案

正如其他人所说,TreeSet 的正常行为是按自然顺序排序,所以是的,如果您实现 Comparable,默认行为就足够了。

// Sorted by "natural" ordering by default
Set<Integer> naturalSet = new TreeSet<Integer>();

// Different constructor that overrides this default behavior
// with an alternate Comparator
Set<Integer> nonNaturalSet = new TreeSet<Integer>(new NonNaturalComparator());

关于java - 我可以使用 Comparable 来使 TreeSet 有序吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36390355/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com