我有一个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