我有一個HashMap:的Java HashMap.containsKey()不調用equals()方法
Map<LotWaferBean, File> hm = new HashMap<LotWaferBean, File>();
LotWaferBean lw = new LotWaferBean();
... //populate lw
if (!hm.containsKey((LotWaferBean) lw)) {
hm.put(lw, triggerFiles[l]);
}
爲LotWaferBean
代碼:
@Override
public boolean equals(Object o) {
if (!(o instanceof LotWaferBean)) {
return false;
}
if (((LotWaferBean) o).getLotId().equals(lotId)
&& ((LotWaferBean) o).getWaferNo() == waferNo) {
return true;
}
return false;
}
在我的IDE我把斷點equals()
但永遠不會執行。爲什麼?
更具體地說,如果你實現`equals`方法,你應該實現`hashcode`一個......就像手冊中所寫的那樣:) – 2011-01-06 04:38:21