假设我有这样的课程:
class A {
int elementA;
int elementB
}
我也有一个ArrayList
像这样:ArrayList<A> listObj
.
如何检查该列表是否包含仅使用某些属性的对象A
?例如。仅考虑elementA
用于查找 if 对象newA{elementA}
已在列表中?
对于对象A
我定义了一个equals
方法,我只考虑elementA
,但这还不够。
列表#contains() http://docs.oracle.com/javase/6/docs/api/java/util/List.html#contains(java.lang.Object)方法使用equals()
评估两个对象是否相同的方法。所以,你需要重写equals()
在你的班级A
并且还覆盖hashCode()
.
@Override
public boolean equals(Object object)
{
boolean isEqual= false;
if (object != null && object instanceof A)
{
isEqual = (this.elementA == ((A) object).elementA);
}
return isEqual;
}
@Override
public int hashCode() {
return this.elementA;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)