用Java语言创建一个TreeSet 对象,并在其中添加一些员工对象(Employee),其名字与工资如下:张三 8000, 李四 6000, 王五。5600,马六 7500。最后按照工资的大小,降序输出。(提示:让Employee 对象实现Comparable接口
时间: 2024-10-17 12:16:02 浏览: 35
在Java中,`TreeSet`是一个有序的集合,它基于红黑树实现,所以元素默认会按自然顺序排列。如果你想按照自定义的排序规则,例如工资降序,你需要让`Employee`类实现`Comparable`接口,并覆盖`compareTo()`方法。以下是创建`TreeSet`、添加员工以及按工资降序输出的示例:
```java
import java.util.Comparator;
import java.util.TreeSet;
class Employee implements Comparable<Employee> {
String name;
int salary;
public Employee(String name, int salary) {
this.name = name;
this.salary = salary;
}
@Override
public int compareTo(Employee other) {
return Integer.compare(this.salary, other.salary); // 按工资降序排序
}
@Override
public String toString() {
return "Name: " + name + ", Salary: " + salary;
}
}
public class Main {
public static void main(String[] args) {
TreeSet<Employee> employeeSet = new TreeSet<>(Comparator.reverseOrder()); // 使用reverseOrder()方法以降序排序
// 添加员工
employeeSet.add(new Employee("张三", 8000));
employeeSet.add(new Employee("李四", 6000));
employeeSet.add(new Employee("王五", 5600));
employeeSet.add(new Employee("马六", 7500));
// 输出工资降序的员工列表
for (Employee employee : employeeSet) {
System.out.println(employee);
}
}
}
```
在这个例子中,我们创建了一个`TreeSet`,并传入`Comparator.reverseOrder()`以便按工资降序排序。然后添加了员工,并使用`for-each`循环遍历并打印工资降序的员工。
阅读全文