用java创建一个People类,包括姓名和年龄2个成员变量。创建3个People对象,将其添加到HashSet中,如果姓名相同,则禁止添加
时间: 2024-03-09 20:47:04 浏览: 38
好的,以下是用Java创建People类的代码:
```java
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 o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
People people = (People) o;
return Objects.equals(name, people.name);
}
@Override
public int hashCode() {
return Objects.hash(name);
}
}
```
接下来是创建3个People对象,并将它们添加到HashSet中的代码:
```java
import java.util.HashSet;
public class Main {
public static void main(String[] args) {
HashSet<People> set = new HashSet<>();
People p1 = new People("Tom", 20);
People p2 = new People("Jerry", 25);
People p3 = new People("Tom", 30);
if (set.add(p1)) {
System.out.println("Added " + p1.getName());
} else {
System.out.println(p1.getName() + " already exists");
}
if (set.add(p2)) {
System.out.println("Added " + p2.getName());
} else {
System.out.println(p2.getName() + " already exists");
}
if (set.add(p3)) {
System.out.println("Added " + p3.getName());
} else {
System.out.println(p3.getName() + " already exists");
}
System.out.println("HashSet contains " + set.size() + " elements");
}
}
```
在上面的代码中,我们使用了HashSet来存储People对象,并且在添加元素之前,先判断该元素是否已经存在于集合中。由于我们在People类中重写了equals方法,因此可以通过比较姓名来判断两个People对象是否相同。如果姓名相同,则禁止添加该元素,否则将其添加到HashSet中。最后输出HashSet中的元素个数,以及每个元素的姓名。