|
Comparator的具體實現(xiàn)類
public class AgeComparator implements Comparator { public int compare(Object op1, Object op2) { Employee eOp1 = (Employee) op1; Employee eOp2 = (Employee) op2;![]() // 按年齡排序 return eOp1.getAge()-(eOp2.getAge()); } }![]() public class NameComparator implements Comparator { public int compare(Object op1, Object op2) { Employee eOp1 = (Employee) op1; Employee eOp2 = (Employee) op2;![]() // 按姓名排序 return eOp1.getName().compareTo(eOp2.getName()); } }![]() public class SalaryComparator implements Comparator { public int compare(Object op1, Object op2) { Employee eOp1 = (Employee) op1; Employee eOp2 = (Employee) op2;![]() // 按薪水排序 return eOp1.getSalary()-(eOp2.getSalary()); } }![]() Employee類: public class Employee { protected String name; protected int age; protected int salary; public Employee(String name,int age,int salary) { this.name=name; this.age=age; this.salary=salary; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } 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; } }![]() 測試: public class Main { public static void main(String[] args) { List<Employee> employees=new ArrayList<Employee>(); employees.add(new Employee("Andy",21,2000)); employees.add(new Employee("Felix",21,3000)); employees.add(new Employee("Bill",35,20000)); employees.add(new Employee("Helen",21,10000)); employees.add(new Employee("Cindy",28,8000)); employees.add(new Employee("Douglas",25,5000)); // 按名稱排序 Collections.sort(employees,new NameComparator()); display(employees);![]() // 按年齡排序 Collections.sort(employees,new AgeComparator()); display(employees); // 按薪水排序 Collections.sort(employees,new SalaryComparator()); display(employees); } public static void display(List<Employee> employees) { for(Employee e:employees) { System.out.println("雇員名="+e.getName()+" 年齡="+e.age+" 薪水="+e.getSalary()); } System.out.println(); } }![]() 輸出: 雇員名=Andy 年齡=21 薪水=2000 雇員名=Bill 年齡=35 薪水=20000 雇員名=Cindy 年齡=28 薪水=8000 雇員名=Douglas 年齡=25 薪水=5000 雇員名=Felix 年齡=21 薪水=3000 雇員名=Helen 年齡=21 薪水=10000![]() 雇員名=Andy 年齡=21 薪水=2000 雇員名=Felix 年齡=21 薪水=3000 雇員名=Helen 年齡=21 薪水=10000 雇員名=Douglas 年齡=25 薪水=5000 雇員名=Cindy 年齡=28 薪水=8000 雇員名=Bill 年齡=35 薪水=20000![]() 雇員名=Andy 年齡=21 薪水=2000 雇員名=Felix 年齡=21 薪水=3000 雇員名=Douglas 年齡=25 薪水=5000 雇員名=Cindy 年齡=28 薪水=8000 雇員名=Helen 年齡=21 薪水=10000 雇員名=Bill 年齡=35 薪水=20000![]() |
|
|
來自: WindySky > 《JAVA總結(jié)》