现在,我正在使用番石榴收藏品,而且我很开心。但是,我想了解为什么我自己的代码不起作用。我想我正在尝试做不可能的事情:
我创建了一个SortedSet<Map.Entry<K, V>>
数据结构。错误是我有时在Set中有重复。对我来说,重复&#34; Map.Entry是其键与另一个条目的键匹配的键。我想忽略计算平等的价值。
但是,这是API:
AbstractMap.SimpleEntry : public boolean equals(Object o)
我喜欢&#34;不。我不想要那个。&#34;我尝试通过扩展它并覆盖equals()来简化SimpleEntry,以便只使用键来决定相等。
问题
使AbstractMap.SimpleEntry只使用键来判断是否存在某种涟漪效应几乎不可能完全理解?
是否有任何可能的理由在AbstractMap.SimpleEntry中覆盖equals()? javadoc是如此限制性的决定平等,不应该等于()只是 final ?
答案 0 :(得分:2)
可以想象您可以以更优化的方式实现equals
,例如,如果您已经预先修改了密钥的哈希码。否则,是的,应该被认为是最终的。 Map.Entry
合同的一部分是必须在密钥和值上测试相等性。