| 
 | 
 
 
发表于 2023-10-24 20:05:07
|
显示全部楼层
   本楼为最佳答案    
 
 
  这是一个关于Java编程的问题,需要设计教师类和比较器类,并使用匿名内部类、lambda表达式和方法引用对教师按照工资高低进行排序。 
 
以下是代码示例: 
 
教师类Teacher: 
 
- public class Teacher {
 
 -     private String name;
 
 -     private double salary;
 
  
-     public Teacher(String name, double salary) {
 
 -         this.name = name;
 
 -         this.salary = salary;
 
 -     }
 
  
-     public String getName() {
 
 -         return name;
 
 -     }
 
  
-     public double getSalary() {
 
 -         return salary;
 
 -     }
 
  
-     public void setName(String name) {
 
 -         this.name = name;
 
 -     }
 
  
-     public void setSalary(double salary) {
 
 -         this.salary = salary;
 
 -     }
 
  
-     @Override
 
 -     public String toString() {
 
 -         return "Teacher{" +
 
 -                 "name='" + name + '\'' +
 
 -                 ", salary=" + salary +
 
 -                 '}';
 
 -     }
 
 - }
 
 
  复制代码 
 
比较器类MyComparer: 
 
- import java.util.Comparator;
 
  
- public class MyComparer {
 
 -     public static int compareBySalory(Teacher t1, Teacher t2) {
 
 -         return Double.compare(t1.getSalary(), t2.getSalary());
 
 -     }
 
  
-     public int compareBySaloryDesc(Teacher t1, Teacher t2) {
 
 -         return Double.compare(t2.getSalary(), t1.getSalary());
 
 -     }
 
 - }
 
 
  复制代码 
 
使用匿名内部类对教师按照工资高低进行排序: 
 
- import java.util.Arrays;
 
 - import java.util.Comparator;
 
  
- public class Main {
 
 -     public static void main(String[] args) {
 
 -         Teacher[] teachers = {
 
 -                 new Teacher("Tom", 5000),
 
 -                 new Teacher("Jerry", 6000),
 
 -                 new Teacher("Mickey", 4000)
 
 -         };
 
  
-         // 使用匿名内部类按照工资升序排序
 
 -         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);
 
 -         }
 
 -     }
 
 - }
 
 
  复制代码 
 
使用lambda表达式对教师按照工资高低进行排序: 
 
- import java.util.Arrays;
 
  
- public class Main {
 
 -     public static void main(String[] args) {
 
 -         Teacher[] teachers = {
 
 -                 new Teacher("Tom", 5000),
 
 -                 new Teacher("Jerry", 6000),
 
 -                 new Teacher("Mickey", 4000)
 
 -         };
 
  
-         // 使用lambda表达式按照工资降序排序
 
 -         Arrays.sort(teachers, (t1, t2) -> Double.compare(t2.getSalary(), t1.getSalary()));
 
  
-         // 输出排序结果
 
 -         for (Teacher teacher : teachers) {
 
 -             System.out.println(teacher);
 
 -         }
 
 -     }
 
 - }
 
 
  复制代码 
 
使用方法引用对教师按照工资高低进行排序: 
 
- import java.util.Arrays;
 
  
- public class Main {
 
 -     public static void main(String[] args) {
 
 -         Teacher[] teachers = {
 
 -                 new Teacher("Tom", 5000),
 
 -                 new Teacher("Jerry", 6000),
 
 -                 new Teacher("Mickey", 4000)
 
 -         };
 
  
-         // 使用方法引用按照工资升序排序
 
 -         Arrays.sort(teachers, Comparator.comparingDouble(Teacher::getSalary));
 
  
-         // 输出排序结果
 
 -         for (Teacher teacher : teachers) {
 
 -             System.out.println(teacher);
 
 -         }
 
 -     }
 
 - }
 
 
  复制代码 
 
以上就是Java编程的解决方案,其中包括了教师类和比较器类的设计,以及使用匿名内部类、lambda表达式和方法引用对教师按照工资高低进行排序的示例代码。 |   
 
 
 
 |