Java對象數組排序的三種方法->comparable,comparator,lambda表達式


以Employee為例,實現對象數組Employee[] employees的排序

 

1.類實現comparable

一個對象數組若要使用Arrays.sort(Object[] objects)方法來排序,那么該對象類需要實現comparable接口

public class Employee implements Comparable<Employee>{
    private String name;
    private double salary;

    public Employee(){
        name="Employee";
        salary=0;
    }

    public Employee(String name,double salary){
        this.name=name;
        this.salary=salary;
    }

    ...省略代碼...

    public double getSalary(){
        return salary;
    }

    public void setSalary(double salary){
        this.salary=salary;
    }

    @Override
    public int compareTo(Employee o){
        //return Double.compare(salary,o.salary);
        return Double.compare(this.getSalary(),o.getSalary());
    }
}
        //1.Employee實現Comparable接口
        Arrays.sort(employees);

 

 

2.往Arrays.sort()方法中傳入Comparator對象來規定排序規則

class EmployeeComparator implements Comparator<Employee>{
    @Override
    public int compare(Employee o1,Employee o2){
        return Double.compare(o1.getSalary(),o2.getSalary());
    }
}
        //2.使用Comparator比較器
        Comparator comparator=new EmployeeComparator();

 

3.往Arrays.sort()方法傳入lambda表達式

        //3.使用Lambada表達式
        Arrays.sort(employees,(o1,o2)->{
            if(o1.getSalary()>o2.getSalary())return 1;
            else return -1;
        });

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM