创建一个people类,包括姓名和年龄两个成员变量,创建3个对象,将其添加到TreeSet中,如果姓名相同,则禁止添加
时间: 2024-03-21 21:38:01 浏览: 60
创建一个PEOPLE类
好的,下面是代码示例:
```java
import java.util.TreeSet;
public class People implements Comparable<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 int compareTo(People o) {
// 按姓名进行比较
return this.name.compareTo(o.getName());
}
@Override
public boolean equals(Object obj) {
if (obj instanceof People) {
People p = (People) obj;
// 如果姓名相同,则认为两个对象相等
return this.name.equals(p.getName());
}
return false;
}
@Override
public int hashCode() {
// 根据姓名计算哈希值
return this.name.hashCode();
}
public static void main(String[] args) {
People p1 = new People("Tom", 20);
People p2 = new People("Jerry", 22);
People p3 = new People("Tom", 25);
TreeSet<People> set = new TreeSet<>();
set.add(p1);
set.add(p2);
set.add(p3);
System.out.println(set);
}
}
```
输出结果为:
```
[People{name='Jerry', age=22}, People{name='Tom', age=20}]
```
可以看到,由于有两个对象的姓名相同,第三个对象 p3 没有被添加到 TreeSet 中。
阅读全文