------- <a href="http://www.itheima.com" target="blank">android培训</a>、<a href="http://www.itheima.com" target="blank">java培训</a>、期待与您交流! ----------
下面定义一个HashSet集合,在集合中存入Person_1对象。
已知该对象拥有的姓名,年龄属性值,根据该类的hashCode(),equals()来判断
覆写这连个方法,进行比较判断,是否为同一对象,添加进HashSet集合中。
import java.util.HashSet;
import java.util.Iterator;
/*
*
* 往hashSet集合中存入自定义对象
* 姓名年龄相同为同一对象 ,通过hashCode(),equals()来判断
*/
class Person_1
{
private String name;
private int age;
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
}
public int getAge()
{
return age;
}
public void setAge(int age)
{
this.age = age;
}
Person_1(String name,int age)
{
this.name=name;
this.age=age;
}
public int hashCode()
{
System.out.println(this.name+"....hasCode");
return name.hashCode()+age*39;
}
public boolean equals(Object obj)
{
if(!(obj instanceof Person_1))
return false;
Person_1 p=(Person_1)obj;
System.out.println(this.name+"...equals..."+p.name);
return this.name.equals(p.name)&&this.age==p.age;
}
}
public class HashSetTest
{
public static void main(String[] args)
{
HashSet<Person_1> hs=new HashSet();
hs.add(new Person_1("a1", 11));
hs.add(new Person_1("a2", 12));
hs.add(new Person_1("a3", 13));
hs.add(new Person_1("a2", 12));
Iterator it=hs.iterator();
while(it.hasNext())
{
Person_1 p=(Person_1)it.next();
System.out.println(p.getName()+"..."+p.getAge());
}
}
public static void sop(Object obj)
{
System.out.println(obj);
}
}