假设我们有一个学生类,默认需要按学生的年龄字段 age
进行排序 代码如下:
@Data @AllArgsConstructor class Student{ private int id; private int age; private String name; }
//测试类如下: public static void main(String[] args) { List<Student> list = new ArrayList<>(); list.add(new Student(1,25,"名子1")); list.add(new Student(2,21,"名子2")); list.add(new Student(3,18,"名子3")); list.add(new Student(4,32,"名子4")); list.add(new Student(5,36,"名子5")); list.add(new Student(6,16,"名子6")); Collections.sort(list, new Comparator<Student>() { @Override public int compare(Student o1, Student o2) { return o1.getAge() - o2.getAge();//正序 } }); // Collections.sort(list, new Comparator<Student>() { // @Override // public int compare(Student o1, Student o2) { // return o2.getAge() - o1.getAge();//倒序 // } // }); //String 默认实现了Comparable<T> 接口 // List<String> list = new ArrayList<>(); // list.add("中"); // list.add("海"); // list.add("国"); // list.add("你"); // Collections.sort(list); System.out.println(list); }