我使用了一个带有自写比较器的 TreeSet。现在,当我向 TreeSet 添加元素并且 Comparator 的比较方法返回 0 时,TreeSet 似乎只包含一个具有相同排名的对象。
我没有看到 javadocs 中记录了这种行为。也许我错过了什么。你能证实这种行为吗?
我编辑了比较器。现在它永远不会返回 0,并且 TreeSet 包含所有具有相同排名的对象。
如果我想拥有多个排名相同的对象,就必须这样吗?
最佳答案
这就是它必须的方式,因为一个集合被定义为只包含一次相同的对象。
当您的 Comparator 返回 0 时,两个对象被认为是相等的,因此所有相等对象中只有一个(可能是第一个)包含在集合中。
关于java - 树集比较器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1379341/