创建一个People类,包括姓名和年龄2个成员变量。创建3个People对象,将其添加到HashSet中,如果姓名相同。则禁止添加
时间: 2024-03-16 21:47:40 浏览: 67
好的,以下是实现代码:
```java
import java.util.HashSet;
public class People {
private String name;
private int age;
public People(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
@Override
public boolean equals(Object obj) {
if (obj == this) {
return true;
}
if (!(obj instanceof People)) {
return false;
}
People p = (People) obj;
return this.name.equals(p.getName());
}
@Override
public int hashCode() {
return name.hashCode();
}
public static void main(String[] args) {
HashSet<People> set = new HashSet<>();
People p1 = new People("Tom", 20);
People p2 = new People("Jerry", 18);
People p3 = new People("Tom", 21);
set.add(p1);
set.add(p2);
set.add(p3);
for (People p : set) {
System.out.println(p.getName() + " " + p.getAge());
}
}
}
```
以上代码实现了一个People类,包括姓名和年龄2个成员变量,同时覆盖了equals()和hashCode()方法,以便将People对象添加到HashSet中时去重。在main()方法中创建了3个People对象,并将它们添加到HashSet中,其中p1和p3的姓名相同,但年龄不同,所以只有p1被添加到了HashSet中。最后输出HashSet中的元素,只有p1和p2被输出。
阅读全文