1、介绍
对任意类型集合对象进行整体排序,排序时将此接口的实现传递给Collections.sort方法或者Arrays.sort方法排序.实现int compare(T o1, T o2);方法,返回正数,零,负数各代表大于,等于,小于。
2、排序代码
public class Test01 {
public static void main(String[] args) {
List<Student> students = new ArrayList<>();
Student s1 = new Student(1, "刘德华", 18);
Student s2 = new Student(4, "张学友", 20);
Student s3 = new Student(2, "郭富城", 25);
Student s4 = new Student(3, "黎明", 25);
students.add(s1);
students.add(s2);
students.add(s3);
students.add(s4);
for (Student s : students) {
System.out.println(s.toString());
}
Collections.sort(students, new Comparator<Student>() {
@Override
public int compare(Student o1, Student o2) {
return o1.getId()-o2.getId();
}
});
//lambda表达式
Collections.sort(students,(t1,t2)->(t1.getId()-t2.getId()));
for (Student s : students) {
System.out.println(s.toString());
}
}
}
3、结果
Student{id=1, name='刘德华', age=18}
Student{id=4, name='张学友', age=20}
Student{id=2, name='郭富城', age=25}
Student{id=3, name='黎明', age=25}
Student{id=1, name='刘德华', age=18}
Student{id=2, name='郭富城', age=25}
Student{id=3, name='黎明', age=25}
Student{id=4, name='张学友', age=20}