定义教师类,包括工号,姓名,工资。从标准设备读入10名教师的信息,并保存到一个TreeSet中,使得按照教师的工资自动升序排序,并输出全部教师的全部信息。
时间: 2023-12-04 11:05:38 浏览: 77
数据结构:定义一个包含学生信息(学号、姓名、成绩)的顺序表_数据结构
5星 · 资源好评率100%
好的,我可以帮你解答这个问题。以下是 Java 代码实现:
```java
import java.util.*;
class Teacher implements Comparable<Teacher> {
private String id;
private String name;
private double salary;
public Teacher(String id, String name, double salary) {
this.id = id;
this.name = name;
this.salary = salary;
}
public String getId() {
return id;
}
public String getName() {
return name;
}
public double getSalary() {
return salary;
}
@Override
public int compareTo(Teacher other) {
if (this.salary < other.salary) {
return -1;
} else if (this.salary > other.salary) {
return 1;
}
return this.id.compareTo(other.id);
}
@Override
public String toString() {
return "Teacher[id=" + id + ", name=" + name + ", salary=" + salary + "]";
}
}
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
TreeSet<Teacher> teachers = new TreeSet<>();
for (int i = 0; i < 10; i++) {
System.out.print("请输入第 " + (i + 1) + " 名教师的工号、姓名和工资:");
String id = scanner.next();
String name = scanner.next();
double salary = scanner.nextDouble();
Teacher teacher = new Teacher(id, name, salary);
teachers.add(teacher);
}
for (Teacher teacher : teachers) {
System.out.println(teacher);
}
}
}
```
首先定义了一个教师类 `Teacher`,包括工号、姓名和工资三个属性,同时实现了 `Comparable` 接口,以便将教师对象按照工资升序排序。
在 `main` 函数中,使用 `Scanner` 从标准输入读入 10 名教师的信息,并将教师对象保存到 `TreeSet` 中。最后遍历 `TreeSet` 输出全部教师的信息。
注意,由于 `TreeSet` 是基于红黑树实现的,它能够自动维护元素的顺序,因此我们无需手动排序。另外,由于教师的工号可能重复,因此在 `compareTo` 方法中,如果两名教师的工资相同,我们使用工号进行比较。
阅读全文