去除集合中自定义对象(如Person类,属性包括姓名和年龄)的重复值(对象的成员变量值都相同)。
package 第六章实验;
import java.util.*;
public class 实验三 {
public static void main(String[] args) {
HashSet hs=new HashSet();
Person p1=new Person("张三",18);
Person p2=new Person("李四",17);
Person p3=new Person("李四",18);
Person p4=new Person("张三",18);
hs.add(p1);
hs.add(p2);
hs.add(p3);
hs.add(p4);
System.out.println(hs);
}
}
class Person{
private String name;
private int age;
public Person(String name,int age) {
this.name = name;
this.age = 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;
}
public String toString() {
return name+":"+age;
}
public int hashCode() {
return name.hashCode();
}
public boolean equals(Object obj) {
if(this==obj) {
return true;
}
if(!(obj instanceof Person)) {
return false;
}
Person p=(Person)obj;
boolean b=this.name.equals(p.name);
return b;
}
}