好吧,我需要指出正确的方向。我已经有一个哈希码和一个带有 override 的 equals 方法。
@Override
public int hashCode() {
return type.hashCode() ^ type2.hashCode() ^ type3.hashCode() ; }
@Override
public boolean equals(Object obj) {
if (!(obj instanceof MyObject)) {
return false;
}
MyObject mdc = (MyObject) obj;
return mdc.type.equals(type) && mdc.type2.equals(type2) && mdc.type3.equals(type3);
}
现在如果我只想比较第一种和第二种类型而不是第三种呢?我可以有两个 hash 和 equal 方法供以后使用吗?
我想要做的是,如果类型 1 和类型 2 匹配,则从当前数组列表中删除它们并将它们添加到新列表中,显示哪些是相同类型。这与上面显示的哈希码不同。
数组中是否有另一种方式,我可以看到 type1 和 type2 的哪个组合出现多次?
前任:
- 射击光环
- 射击使命召唤
- 竞速极限
- …………
- …………
- …………
- 射击光环
Shooting Halo 出现了两次,需要将它们删除并添加到另一个列表中,但问题是我已经有一个以前使用的哈希码。
编辑:我要感谢大家的想法。我通过创建另一个具有类似 getter 和 setter 但具有更新的哈希码的对象类解决了这个问题,并且它有效。下次我会使用更好的逻辑方法。我在这篇文章中的主要目标是了解是否有任何方法可以在一个类中拥有多个哈希码和方法,这显然是不可能的。:)