Comparable接口与Comparator接口练习:5、请声明一个员工类Employee,有编号,姓名,薪资,实现java.lang.Comparable接口,按照编号升序排序......

    技术2022-07-11  79

    题目

    5、请声明一个员工类Employee,有编号,姓名,薪资,实现java.lang.Comparable接口,按照编号升序排序。 在测试类TestEmployee中,创建员工数组,并初始化5个员工, (1)先遍历显示一遍 (2)再调用Arrays.sort(Object[] arr)排序,然后再遍历显示一遍 (3)再调用Arrays.sort(Object[] arr,Comparator c)排序,然后再遍历显示一遍,按照薪资降序排列

    Employee类

    /* * 请声明一个员工类Employee,有编号,姓名,薪资, * 实现java.lang.Comparable接口,按照编号升序排序。 */ public class Employee implements Comparable{ private int id; private String name; private int salary; public Employee() { super(); } public Employee(int id, String name, int salary) { super(); this.id = id; this.name = name; this.salary = salary; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getSalary() { return salary; } public void setSalary(int salary) { this.salary = salary; } @Override public String toString() { return "Employee [id=" + id + ", name=" + name + ", salary=" + salary + "]"; } @Override public int compareTo(Object o) { Employee em = (Employee)o; return this.getId() - em.getId(); } }

    TestEmployee类

    import java.util.Arrays; import java.util.Comparator; public class TestEmployee { public static void main(String[] args) { //在测试类TestEmployee中,创建员工数组,并初始化5个员工, Employee[] arr = new Employee[5]; arr[0] = new Employee(1,"张三",5000); arr[1] = new Employee(2,"李四",8000); arr[2] = new Employee(3,"王菲",12000); arr[3] = new Employee(4,"刘瑞",5500); arr[4] = new Employee(5,"陈贵",21000); //(1)先遍历显示一遍 for (int i = 0; i < arr.length; i++) { System.out.println(arr[i]); } System.out.println("--------------------"); //(2)再调用Arrays.sort(Object[] arr)排序,然后再遍历显示一遍 Arrays.sort(arr); for (int i = 0; i < arr.length; i++) { System.out.println(arr[i]); } //(3)再调用Arrays.sort(Object[] arr,Comparator c)排序, //然后再遍历显示一遍,按照薪资降序排列 //实现方法一:采用匿名内部类 /* Arrays.sort(arr, new Comparator() { @Override public int compare(Object o1, Object o2) { Employee e1 = (Employee)o1; Employee e2 = (Employee)o2; return e2.getSalary() - e1.getSalary(); } }); System.out.println("--------------------"); for (int i = 0; i < arr.length; i++) { System.out.println(arr[i]); }*/ // SalaryCompare sc = new SalaryCompare(); // Arrays.sort(arr,sc); //简化为一行代码 Arrays.sort(arr,new SalaryCompare()); System.out.println("--------------------"); for (int i = 0; i < arr.length; i++) { System.out.println(arr[i]); } } } class SalaryCompare implements Comparator{ @Override public int compare(Object o1, Object o2) { Employee e1 = (Employee)o1; Employee e2 = (Employee)o2; return e2.getSalary() - e1.getSalary(); } }

    运行结果:

    Processed: 0.010, SQL: 9