TreeSet 比较器 OR comparble.compareTo() 优先级

发布于 2024-12-10 21:43:10 字数 137 浏览 1 评论 0原文

如果Java TreeSet设置了一个比较器来处理对象排序逻辑,但是对象(类)也实现了comparable并且在其上实现了有效的compareTo方法。

哪一个优先?比较器内的逻辑还是compareTo方法中的逻辑?

非常感谢。

If the Java TreeSet is set with a comparator to deal with the objects sorting logic But the objects ( class) also implements comparable and have valid compareTo method implemented on it.

Which one takes priority? The logic within the comparator or the logic in the compareTo method?

Many thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

情未る 2024-12-17 21:43:10

传入 TreeSet 构造函数的 Comparator 优先。这允许使用与对象的 compareTo 实现的不同的比较算法。如果不是这样,您将永远无法对 TreeSet 使用不同的比较算法。

The Comparator passed-in to TreeSet's constructor takes priority. This allows for using a different comparison algorithm than is implemented by the object's compareTo. If it weren't for this, you'd never be able to use a different comparison algorithm with TreeSet.

心安伴我暖 2024-12-17 21:43:10

这已经说得很清楚 Javadocs(添加了重点):

public TreeSet(Comparator比较器)
构造一个新的空树集,根据指定的比较器排序。 ...

参数:
comparator - 将用于排序该集合的比较器。

This is spelt out pretty clearly in the Javadocs (emphasis added):

public TreeSet(Comparator<? super E> comparator)
Constructs a new, empty tree set, sorted according to the specified comparator. ...

Parameters:
comparator - the comparator that will be used to order this set.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文