员工类中定义name和age属性,并重写了tostring方法在TREEset集合中存储多名员工信息,员工对象首先按照年龄降序排列,年龄相同时按名字的长短降序排列
时间: 2024-03-12 12:47:49 浏览: 82
好的,你的问题是关于如何实现员工对象在TreeSet中按照指定规则排序的问题吗?那么对于这个问题,我可以给你一些思路和代码示例。
首先,我们可以定义一个Employee类,包含name和age两个属性,并且实现Comparable接口,重写compareTo方法,按照指定的规则排序。代码如下:
```
public class Employee implements Comparable<Employee> {
private String name;
private int age;
public Employee(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
@Override
public String toString() {
return "Employee{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
@Override
public int compareTo(Employee o) {
if (this.age != o.age) {
return o.age - this.age;
} else {
return o.name.length() - this.name.length();
}
}
}
```
在这个类中,我们重写了compareTo方法,如果两个Employee对象的age不相同,则按照age降序排列,如果age相同,则按照name的长度降序排列。
接下来,我们可以使用TreeSet来存储多个Employee对象,并且默认按照compareTo方法的规则排序。代码示例如下:
```
public class Main {
public static void main(String[] args) {
TreeSet<Employee> employees = new TreeSet<>();
employees.add(new Employee("Tom", 25));
employees.add(new Employee("Jerry", 30));
employees.add(new Employee("Mike", 25));
employees.add(new Employee("Peter", 30));
employees.add(new Employee("Mary", 20));
employees.add(new Employee("John", 20));
for (Employee employee : employees) {
System.out.println(employee);
}
}
}
```
在这个示例中,我们创建了一个TreeSet对象,并且向其中添加了多个Employee对象。由于Employee类实现了Comparable接口,并且重写了compareTo方法,因此TreeSet会按照规则自动排序。最后,我们遍历TreeSet中的元素,并且依次输出它们的信息。
希望这个回答能够对你有所帮助!
阅读全文