首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >偏序元素的TreeSet

偏序元素的TreeSet
EN

Stack Overflow用户
提问于 2011-10-07 01:23:48
回答 2查看 682关注 0票数 0

Java TreeSet包含了一个神秘的断言:“TreeSet的行为是定义良好的,即使它的排序严格地是partial__;它只是没有遵守Set接口的一般契约。”当对任意一对元素定义Comparable.compareTo()时,我想知道如何才能提供偏序元素,从而暗示了关系(如果全关系是自反的、反对称的和可传递的,那么它就是全序的)。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-10-07 01:36:02

我在JavaDoc 5中找不到任何关于“部分”的信息。

红色-黑色树为TreeSet实现工作,该实现没有任何“部分”。

你确定你在读java.util.TreeSet吗?

票数 -2
EN

Stack Overflow用户

发布于 2011-10-07 01:33:49

它是否是“总顺序”取决于.compareTo()的实现。

假设您正在将一个列表Integers排序到一棵树中,但是与其用精确的数值进行比较,不如将所有的数字分组为100。所以,你会认为数字0-99是相等的,100-199是相等的,200-299是相等的。您可以通过将Integer值取100,然后比较结果来做到这一点。因此,所有数字0-99都小于所有数字100-199,但就5 == 43172 == 121方法而言,由于所有值除以100,然后再进行比较。

因为在这个例子中,5 == 43 5可能在43之前,或者43在5之前--因此,它们是部分有序的,但是TreeSet的行为保持不变,因为它使用.compareTo()来构建树。

您可以使用偏序来将事物组合成更大的块,即使排序不会产生总的、自然的排序。

票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7682208

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档