今天突然有一个需求:现在有一个集合类,存储着用户对象,而要把该集合对象中的 【年龄】字段中 年龄 = 18
岁的元素放在第一位,剩下的元素可以随机排列,话不多说,看 demo
- 实体类
public class Student {
private String name;
private int age;
// 省略 setter() getter() 方法
}
- 测试类
public class StudentTest {
public static void main(String[] args) {
List<Student> list = new ArrayList<Student>();
Student student1 = new Student("zhangsan", 24);
Student student2 = new Student("lisi", 15);
Student student3 = new Student("wangwu", 30);
Student student4 = new Student("zhaoliu", 18);
Student student5 = new Student("tianqi", 20);
list.add(student1);
list.add(student2);
list.add(student3);
list.add(student4);
list.add(student5);
list.sort(new Comparator<Student>() {
@Override
public int compare(Student o1, Student o2) {
int flag;
flag = o1.getAge() - o2.getAge();
if (18 == o1.getAge()) {
return -1;
} else {
return flag;
}
}
});
for (Student student : list) {
System.out.println(student);
}
}
}
运行结果
list.sort()
方法可用 lambda表达式
替代,为了让读者清晰,博主没有使用 lambda表达式
另外,该接口可实现多字段排序