一般描述的事物需要往集合中添加,那么都需要重写这两个方法
删除和判断元素是否存在,都是先判断hashCode 看看是否存在,若存在则继续equals();
import java.util.*;
class Person
{
private String name;
private int age;
Person(String name,int age)
{
this.name=name;
this.age=age;
}
public int hashCode()//重写
{
return name.hashCode()+age ;
}
public boolean equals(Object obj)//重写 Object不能换
{
if(!(obj instanceof Person))
return false;
Person p=(Person)obj;
System.out.println(this.name+"...."+p.name);
return this.name.equals(p.name)&&this.age==p.age;
}
public String getName()
{
return name;
}
public int getAge()
{
return age;
}
}
class HashSetDemo
{
public static void main(String[] args)
{
HashSet hs=new HashSet();
hs.add(new Person("lisi01",30));
hs.add(new Person("lisi02",33));
hs.add(new Person("lisi03",35));
hs.add(new Person("lisi02",33));
hs.add(new Person("lisi01",30));
hs.add(new Person("lisi04",32));
hs.add(new Person("lisi03",35));
Iterator it=hs.iterator();
while(it.hasNext())
{
Person p=(Person)it.next();;
sop(p.getName()+" "+p.getAge());
}
}
public static void sop(Object obj)
{
System.out.println(obj);
}
}