在HashSet集合中添加三个Person对象,把姓名相同的人当作同一个人,禁止重复添加。提示:Person类中定义name和age属性,重写hashCode()方法和equals()方法,针对Person类的name属性进行比较,如果name相同,hashCode()方法的返回值相同,equals()方法返回true
时间: 2024-03-14 17:44:33 浏览: 65
好的,针对你的问题,我来给你提供一下代码示例:
```java
import java.util.HashSet;
public 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 instanceof Person)) {
return false;
}
Person person = (Person) obj;
return name.equals(person.name);
}
public static void main(String[] args) {
HashSet<Person> set = new HashSet<>();
Person person1 = new Person("Tom", 18);
Person person2 = new Person("Jerry", 20);
Person person3 = new Person("Tom", 22);
set.add(person1);
set.add(person2);
set.add(person3);
System.out.println(set);
}
}
```
运行结果:
```
[Person{name='Tom', age=18}, Person{name='Jerry', age=20}]
```
可以看到,HashSet中只有两个Person对象,因为姓名相同的Person视为同一个人,不会重复添加。
阅读全文