Arraylist判断重复用equals方法,HashSet用HashCode和equals方法。
如果姓名和年龄相同则重复,不打印
import java.util.*;
class h
{
public static void main(String[] args)
{
HashSet sh = new HashSet();
sh.add(new person("a1",11));
sh.add(new person("a2",12));
sh.add(new person("a2",12));
sh.add(new person("a3",13));
for(Iterator it = sh.iterator();it.hasNext();)//循环读元素
{
person p = (person)it.next();
sop(p.getName()+","+p.getAge());
}
}
public static void sop(Object obj)
{
System.out.println(obj);
}
}
class person
{
private String name;
private int age;
person(String name,int age)
{
this.name = name;
this.age = age;
}
public int hashCode()//增加HASH值
{
return name.hashCode()+age;
}
public boolean equals(Object obj)//判断是否重复,equals方法
{
if(!(obj instanceof person))
return false;
person p = (person)obj;
return this.name.equals(p.name)&&this.age==p.age;
}
public String getName()
{
return name;
}
public int getAge()
{
return age;
}
}