【发布时间】:2015-03-24 18:23:44
【问题描述】:
现在,我正在使用番石榴系列,一切都很好,很开心。但是,我想了解为什么我自己的代码不起作用。我想我正在尝试做不可能的事情:
我创建了一个SortedSet<Map.Entry<K, V>> 数据结构。错误是我有时会在套装中得到重复。对我来说,“重复”的 Map.Entry 是其键与另一个条目的键匹配的键。我想忽略计算相等性的值。
但是,这里是 API:
AbstractMap.SimpleEntry : public boolean equals(Object o)
我当时想“不。我不想要那个。”我试图通过扩展 SimpleEntry 并覆盖 equals() 来使 SimpleEntry 符合我的意愿,以便仅使用键来决定相等性。
问题
让 AbstractMap.SimpleEntry 只使用决定相等性的键有某种几乎不可能完全理解的连锁反应?
在 AbstractMap.SimpleEntry 中是否有任何可能的理由重写 equals()? javadoc 在决定相等性方面是如此严格,不应该将 equals() 设为 final 吗?
【问题讨论】:
-
我们可以看看你实现的 equals() 方法吗?
-
@jaco0646 不。我继续使用番石榴 TreeMultiset。 SortedSet
> 代码早已不复存在。但是,它确实存在于我的噩梦中。我确实学到了很多,现在我已经结束了。
标签: java collections overriding