去除集合中自定义对象(如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; } //重写同String()方法 public String toString() { return name+":"+age; } //重写hashCode()方法 public int hashCode() { return name.hashCode(); } //重写equals方法 public boolean equals(Object obj) { if(this==obj) { return true; } if(!(obj instanceof Person)) {//判断是否为Student对象 return false;//不是同一个类,哈希值不一样,可以直接存入到哈希数组中 } Person p=(Person)obj;//将对象强制转换为Person类型 boolean b=this.name.equals(p.name); return b; } }