在hashset集合中添加三个person对象,把姓名相同的人当做同一个人,禁止重复添加。
时间: 2023-06-05 07:47:52 浏览: 140
可以先重写Person类的hashCode()和equals()方法,使得姓名相同的Person对象具有相同的hashCode值和equals返回值。然后创建HashSet集合,将三个Person对象添加进去即可,由于重复的Person对象会被覆盖,所以不会出现重复添加的情况。具体代码如下:
```
import java.util.HashSet;
public class Test {
public static void main(String[] args) {
HashSet<Person> set = new HashSet<>();
set.add(new Person("张三", 20));
set.add(new Person("李四", 25));
set.add(new Person("张三", 22));
System.out.println(set);
}
}
class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
@Override
public int hashCode() {
return name.hashCode();
}
@Override
public boolean equals(Object obj) {
if (obj == null || !(obj instanceof Person)) {
return false;
}
Person p = (Person) obj;
return this.name.equals(p.name);
}
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
```
阅读全文