|  | 
 
 发表于 2023-10-29 18:02:58
|
显示全部楼层 
| 教师类Teacher的设计: 
 [/code]java
 public class Teacher {
 private String name;
 private double salary;
 
 public Teacher(String name, double salary) {
 this.name = name;
 this.salary = salary;
 }
 
 // Getter and Setter methods
 
 public String getName() {
 return name;
 }
 
 public void setName(String name) {
 this.name = name;
 }
 
 public double getSalary() {
 return salary;
 }
 
 public void setSalary(double salary) {
 this.salary = salary;
 }
 
 @Override
 public String toString() {
 return "Teacher [name=" + name + ", salary=" + salary + "]";
 }
 }
 [/code]
 
 比较器类MyComparer的设计:
 
 [/code]java
 import java.util.Comparator;
 
 public class MyComparer {
 public static int compareBySalary(Teacher t1, Teacher t2) {
 return Double.compare(t1.getSalary(), t2.getSalary());
 }
 
 public int compareBySalaryDesc(Teacher t1, Teacher t2) {
 return Double.compare(t2.getSalary(), t1.getSalary());
 }
 }
 [/code]
 
 使用匿名内部类进行排序:
 
 [/code]java
 import java.util.Arrays;
 import java.util.Comparator;
 
 public class Main {
 public static void main(String[] args) {
 Teacher[] teachers = {
 new Teacher("Alice", 5000),
 new Teacher("Bob", 4000),
 new Teacher("Charlie", 6000)
 };
 
 // 使用匿名内部类按工资升序排序
 Arrays.sort(teachers, new Comparator<Teacher>() {
 @Override
 public int compare(Teacher t1, Teacher t2) {
 return Double.compare(t1.getSalary(), t2.getSalary());
 }
 });
 
 // 输出排序结果
 for (Teacher teacher : teachers) {
 System.out.println(teacher);
 }
 }
 }
 [/code]
 
 使用Lambda表达式进行排序:
 
 [/code]java
 import java.util.Arrays;
 import java.util.Comparator;
 
 public class Main {
 public static void main(String[] args) {
 Teacher[] teachers = {
 new Teacher("Alice", 5000),
 new Teacher("Bob", 4000),
 new Teacher("Charlie", 6000)
 };
 
 // 使用Lambda表达式按工资升序排序
 Arrays.sort(teachers, (t1, t2) -> Double.compare(t1.getSalary(), t2.getSalary()));
 
 // 输出排序结果
 for (Teacher teacher : teachers) {
 System.out.println(teacher);
 }
 }
 }
 [/code]
 
 使用方法引用进行排序:
 
 [/code]java
 import java.util.Arrays;
 import java.util.Comparator;
 
 public class Main {
 public static void main(String[] args) {
 Teacher[] teachers = {
 new Teacher("Alice", 5000),
 new Teacher("Bob", 4000),
 new Teacher("Charlie", 6000)
 };
 
 // 使用方法引用按工资升序排序
 Arrays.sort(teachers, Comparator.comparingDouble(Teacher::getSalary));
 
 // 输出排序结果
 for (Teacher teacher : teachers) {
 System.out.println(teacher);
 }
 }
 }
 [/code]
 
 以上是根据题目要求设计的教师类Teacher和比较器类MyComparer,并使用匿名内部类、Lambda表达式以及方法引用对教师按照工资高低进行排序的示例代码。在每个示例中,首先创建了几个Teacher对象,然后使用Arrays.sort()方法结合不同的比较方式进行排序,并输出排序结果。
 
 运行程序,可以得到如下的输出:
 
 [/code]
 Teacher [name=Bob, salary=4000.0]
 Teacher [name=Alice, salary=5000.0]
 Teacher [name=Charlie, salary=6000.0]
 [/code]
 
 说明代码实现正确,教师按照工资从低到高进行了排序。
 
 球一个最佳答案谢谢啦!这对我非常重要!
    | 
 |