class User {
private String name;
public String getName() { return name; }
public void setName(String name) { this.name = name; }
public User(String name) { super(); this.name = name; }
@Override public int hashCode() { return 2 * name.hashCode(); }
public boolean equals(Object user) { if (this.getName().equals(((User) user).getName())) { return true; } else return false; }
@Override public String toString() { return “User [name=” + name + “]”; }
代码贴一下。之前一直不成功,因为把equals方法写成了public boolean equals(User user) 。
原因很明了了,object中的equals是被继承了,只不过重载了一下。
因此在hashmap的 put里还是相当于不相等的。
哈哈,顺道复习了下重载和重写。常用但是忘了定义都忘得差不多了。
温故而知新吧。