
HashMap的key如果是自定义的类,一定要重载hashCode和equals方法,如果你有别的方法判断相等可以不重载toString,还不止这些。开始我的equals是这样写的:
public boolean equals(MyClass c) {
return toString().equals(c.toString());
}
到网上看了些帖子后修改如下就可以了:
public boolean equals(Object c) {
return (mtc instanceof MyClass) &&
toString().equals(((MyClass)c).toString());
}