public class Person {
private String name;//对象属性
private Integer age;
public static void main(String[] args) {
// TODO Auto-generated method stub
Person per1 = new Person("呆呆",13);//实例化对象
Person per2 = new Person("笨笨",17);
Person per3 = new Person("丢丢",15);
Person per4 = new Person("瓜瓜",45);
Person per5 = new Person("嗲嗲",25);
Person per6 = new Person("呆呆",13);
HashSet<Person> hash = new HashSet<Person>();//实例化HashSet集合对象
hash.add(per1);//给集合添加元素
hash.add(per2);
hash.add(per3);
hash.add(per4);
hash.add(per5);
hash.add(per6);
//Iterator<Person> it = hash.iterator<Person>();
for(Person tr:hash) { //遍历HashSet集合
System.out.println(tr);
}
}
public Person(String name,int age) { //重构构造方法
this.name = name;
this.age = age;
}
public String toString() { //对象转成字符串格式
return "名字 "+name+" 年龄 "+age;
}
//重载String的hashCode
public int hashCode() { //获取姓名和年龄的哈希值
return name.hashCode()+age.hashCode();
}
//重载Object的equals方法
public boolean equals(Object obj) { //判断对象有值时值是否相等,
Person p = (Person)obj;
if(this == p)//判断是不是同一个对象
{
return true;
}
if(!(obj instanceof Person))//判断是不是同一类型
{
return false;
}
if(p.age == this.age)//判断两个年龄是否相同
{
return true;//true表示重复
}
return false;
}
}
private String name;//对象属性
private Integer age;
public static void main(String[] args) {
// TODO Auto-generated method stub
Person per1 = new Person("呆呆",13);//实例化对象
Person per2 = new Person("笨笨",17);
Person per3 = new Person("丢丢",15);
Person per4 = new Person("瓜瓜",45);
Person per5 = new Person("嗲嗲",25);
Person per6 = new Person("呆呆",13);
HashSet<Person> hash = new HashSet<Person>();//实例化HashSet集合对象
hash.add(per1);//给集合添加元素
hash.add(per2);
hash.add(per3);
hash.add(per4);
hash.add(per5);
hash.add(per6);
//Iterator<Person> it = hash.iterator<Person>();
for(Person tr:hash) { //遍历HashSet集合
System.out.println(tr);
}
}
public Person(String name,int age) { //重构构造方法
this.name = name;
this.age = age;
}
public String toString() { //对象转成字符串格式
return "名字 "+name+" 年龄 "+age;
}
//重载String的hashCode
public int hashCode() { //获取姓名和年龄的哈希值
return name.hashCode()+age.hashCode();
}
//重载Object的equals方法
public boolean equals(Object obj) { //判断对象有值时值是否相等,
Person p = (Person)obj;
if(this == p)//判断是不是同一个对象
{
return true;
}
if(!(obj instanceof Person))//判断是不是同一类型
{
return false;
}
if(p.age == this.age)//判断两个年龄是否相同
{
return true;//true表示重复
}
return false;
}
}