java - 树集比较器

标签 java collections

我使用了一个带有自写比较器的 TreeSet。现在,当我向 TreeSet 添加元素并且 Comparator 的比较方法返回 0 时,TreeSet 似乎只包含一个具有相同排名的对象。

我没有看到 javadocs 中记录了这种行为。也许我错过了什么。你能证实这种行为吗?

我编辑了比较器。现在它永远不会返回 0,并且 TreeSet 包含所有具有相同排名的对象。

如果我想拥有多个排名相同的对象,就必须这样吗?

最佳答案

这就是它必须的方式,因为一个集合被定义为只包含一次相同的对象。

当您的 Comparator 返回 0 时,两个对象被认为是相等的,因此所有相等对象中只有一个(可能是第一个)包含在集合中。

关于java - 树集比较器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1379341/

相关文章:

java - 在ArrayList的ArrayList中,如何在更新内部数组时保留父数组列表中的值?

Java开源类(class)管理系统

java - ExecutorService 似乎在 UI 上运行线程?

java - 如何从 hashmap 返回对象

java - 为什么Java中没有SortedList?

java - Scala 到 Java 的转换

kotlin - 在 kotlin 中运行以下代码时创建了多少个集合?

java - 如何为可见的弹出窗口应用条件,

java - 将字符串粘贴到控制台行以供用户编辑?

Java 7 平台独立的 Base64?