java 对象列表多字段排序

public static void main(String []args) {
        List stus = new ArrayList<>();
        Student student = new Student();


        student.setId("1");
        student.setName("张三");
        student.setAge(18);
        stus.add(student);
        Student student2 = new Student();


        student2.setId("2");
        student2.setName("李四");
        student2.setAge(18);
        stus.add(student2);


        Student student3 = new Student();
        student3.setId("3");
        student3.setName("王五");
        student3.setAge(19);
        stus.add(student3);


        Student student4 = new Student();
        student4.setId("4");
        student4.setName("马六");
        student4.setAge(20);
        stus.add(student4);


        Student student5 = new Student();
        student5.setId("5");
        student5.setName("马六");
        student5.setAge(21);
        stus.add(student5);

      //  先按姓名降序,再按年龄升序,默认是升序,降序只需加上 ‘.reversed()’
        stus.sort(Comparator.comparing(Student :: getName).reversed().thenComparing(Student :: getAge));
        for(Student s : stus) {
            System.out.println(s.getId() + "----" + s.getName() + "-------" + s.getAge());
        }
    }

你可能感兴趣的:(java排序)