本帖最后由 茄子 于 2014-6-22 09:00 编辑
import java.util.*;
class Person22
{
private String name;
private int age;
Person22(String name,int age)
{
this.name=name;
this.age=age;
}
public int hashCode() //复写hashCode中的hashCode方法,返回我们自己定义的哈希值
{
System.out.println(this.name+" hashCode"); //输出证明了hashcode的运行
return this.name.hashCode()+age*39;
}
public boolean equals(Object obj) //复写Object中的equals方法
{
if(!(obj instanceof Person)) //判断对象obj是不是Person类的对象
return false;
Person22 p=(Person22)obj; //强制转型
return this.name.equals(p.name)&&this.age==p.age; //建立自己独有的比较方法,姓名相同,年龄相等。
}
public String getName()
{
return name;
}
public int getAge()
{
return age;
}
}
public class HashSetDemo2 {
public static void sop(Object obj)
{
System.out.println(obj);
}
public static void main(String[] args) {
HashSet hs=new HashSet();
hs.add(new Person22("zhaoyujie",20));
hs.add(new Person22("zhaoyujie",21));
hs.add(new Person22("zhaoyujie",22));
hs.add(new Person22("zhaoyujie",23));
hs.add(new Person22("zhaoyujie",21));
Iterator it=hs.iterator();
while(it.hasNext())
{
Person22 p=(Person22)it.next();
sop(p.getName()+"^^^^^^^^^^^^^^^"+p.getAge());
}
}
}
输出结果:
zhaoyujie hashCode
zhaoyujie hashCode
zhaoyujie hashCode
zhaoyujie hashCode
zhaoyujie hashCode
zhaoyujie^^^^^^^^^^^^^^^20
zhaoyujie^^^^^^^^^^^^^^^22
zhaoyujie^^^^^^^^^^^^^^^21
zhaoyujie^^^^^^^^^^^^^^^21
zhaoyujie^^^^^^^^^^^^^^^23
我居然给存进去了!!!是我的电脑太神奇了吗???????????????
兄弟们,告诉我,问题出在哪里 啊
|