题目:
在HashSet集合中添加三个Person对象,把姓名相同的人当作同一个人,禁止重复添加。
提示:Person类中定义name和age属性,重写hashCode()方法和equals()方法,针对Person类的name属性进行比较,
如果name相同,hashCode()方法的返回值相同,equals()方法返回true
解题思路
我们要知道,Set接口数据不可以重复,有序排序,添加数据的有3种方式
前面没有其他元素,可以直接添加
hash值不同,直接添加
hash值相同,但equals不同,可以直接添加
根据题目需求,把姓名相同的人当作同一个人,禁止重复添加。因此equals()根据姓名进行判断、不需要同时判断姓名还有年龄
重写的hashCode()和equals()的都改一下。
代码实现
一、实体类
import java.util.Objects;
public class Person {
private String name;
private int age;
public Person() {
}
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name