转载请标明出处:http://blog.csdn.net/wangtaocsdn/article/details/71500500
方法一:将要排序的对象类实现Comparable<>接口。
public class Employee implements Comparable<Employee>{ private String name; private Integer age; private Double money; public Employee(String name, Integer age, Double money) { super(); this.name = name; this.age = age; this.money = money; } @Override public String toString() { return "Employee [name=" + name + ", age=" + age + ", money=" + money + "]"; } @Override public int compareTo(Employee o) { return (int) (this.money - o.money); } }
import java.util.ArrayList; import java.util.Collections; import java.util.List; public class Test { public static void main(String[] args) { List<Employee> list = new ArrayList<Employee>(); list.add(new Employee("小红",20,88.8)); list.add(new Employee("小明",21,66.6)); list.add(new Employee("小亮",22,90.0)); System.out.println("排序前:"); for (Employee e : list) { System.out.println(e.toString()); } Collections.sort(list); System.out.println("排序后:"); for (Employee e : list) { System.out.println(e.toString()); } } }
根据money排序:
排序前: Employee [name=小红, age=20, money=88.8] Employee [name=小明, age=21, money=66.6] Employee [name=小亮, age=22, money=90.0] 排序后: Employee [name=小明, age=21, money=66.6] Employee [name=小红, age=20, money=88.8] Employee [name=小亮, age=22, money=90.0]
方法二:使用Comparator匿名内部类实现。
public class Employee{ String name; Integer age; Double money; public Employee(String name, Integer age, Double money) { super(); this.name = name; this.age = age; this.money = money; } @Override public String toString() { return "Employee [name=" + name + ", age=" + age + ", money=" + money + "]"; } }
import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List; public class Test { public static void main(String[] args) { List<Employee> list = new ArrayList<Employee>(); list.add(new Employee("小红",20,88.8)); list.add(new Employee("小明",23,66.6)); list.add(new Employee("小亮",22,90.0)); System.out.println("排序前:"); for (Employee e : list) { System.out.println(e.toString()); } Collections.sort(list, new Comparator<Employee>() { @Override public int compare(Employee o1, Employee o2) { return o1.age - o2.age; } }); System.out.println("排序后:"); for (Employee e : list) { System.out.println(e.toString()); } } }
根据age排序:
排序前: Employee [name=小红, age=20, money=88.8] Employee [name=小明, age=23, money=66.6] Employee [name=小亮, age=22, money=90.0] 排序后: Employee [name=小红, age=20, money=88.8] Employee [name=小亮, age=22, money=90.0] Employee [name=小明, age=23, money=66.6]
