【发布时间】:2013-06-12 05:29:32
【问题描述】:
假设我有一个简单的 POJO 类 Class1 ,它有 2 个 int 类型的字段。
我已经实现了它的hashCode() 和equals() 方法来处理这两个字段,以便将类的实例放入一个集合中。
到目前为止一切顺利。
现在,我想要一个不同的集合,如果第一个字段是 equal ,它认为 Class1 的实例是相等的,从而使相等条件更弱。我什至可能想要另一组只考虑第二个字段作为检查相等性的字段。
有可能吗?如果有,怎么做?
【问题讨论】:
-
将比较器与 TreeMap 一起使用。另一种选择是扩展 HashMap,使其使用 Hash 生成器而不是 hashCode()
-
是否可以以某种方式扩展 HashSet?