我有一個arrayList,我想使用包含(Thing o)方法來檢查這兩個對象的相等性,並且重寫了Thing類中的equals()方法,但這不起作用當我打電話包含方法! 這是我的事類:如何評價兩個對象在java中的列表
public class Thing{
private int id;
//getter setter
@Override
public boolean equals(Object o) {
if(!(o instanceof Thing))
return false;
if(id == ((Thing)o).getId())
return true;
return false;
}
}
是它需要覆蓋的hashCode()方法呢?如果是的話如何覆蓋它?
燦你展示瞭如何使用'contains'方法?是的,當你覆蓋其中一個時,你總是應該覆蓋equals和hashcode。 –
重寫hashcode是一種很好的做法,但對你的情況無濟於事。要覆蓋它,你可以簡單地'返回ID;'... – assylias
'dblist'是列表,我有一個帶'nlo'名字的Thing對象。 'if(dblist.contains(nlo)){ // do something }' –
013