//什么时候重修hashCode 方法? 当对象当作键值或者索引的时候 需要重写
import java.util.*;
class Name{
private String name;
private String age;
public Name(String name,String age){
this.name=name;
this.age=age;
}
public String toString(){
return this.name+" "+this.age;
}
public boolean equals(Object obj){
if(obj instanceof Name){
Name n=(Name)obj;
return (name.equals(n.name)) && (age.equals(n.age));
}else
return super.equals(obj);
}
public int hashCode(){
return name.hashCode();
}
}
public class Stu{
public static void main (String [] args)
{
Collection hash=new HashSet();
//添加元素
hash.add("hello");
hash.add(new Integer(200));
hash.add(new Name("majianjie","22"));
//删除元素
hash.remove("hello");
hash.remove(new Integer(200));
System.out.println(hash.remove(new Name("majianjie","22"))); //在没有重写hashcode的方法时候,删除不了的,返回 false!
System.out.println(hash);
}
}