package com.zhangpengfei.demo; import org.assertj.core.util.Lists; import java.util.*; import java.util.function.*; import java.util.stream.Collectors; /** * ClassName: <br/> * date: 2020/9/15 10:24<br/> * * @author zhangpengfei <br/> * @since JDK 1.8 */ public class Test { public static void main(String[] args) { Student s1 = new Student(); s1.setNo(1); s1.setName("张三"); s1.setAge(18); s1.setAddress("北京"); Student s2 = new Student(); s2.setNo(2); s2.setName("李四"); s2.setAge(14); s2.setAddress("上海"); Student s3 = new Student(); s3.setNo(4); s3.setName("王五"); s3.setAge(17); s3.setAddress("深圳"); Student s4 = new Student(); s4.setNo(3); s4.setName("赵六"); s4.setAge(17); s4.setAddress("广州"); List<Student> list = new ArrayList<>(); list.add(s1); list.add(s2); list.add(s3); list.add(s4); List<Student> collect1 = list.stream() .sorted(Comparator.comparing(Student::getAge).thenComparing(Student::getNo)) .collect(Collectors.toList()); System.out.println("正序:" + collect1); System.out.println("============================"); List<Student> collect2 = list.stream().sorted(Comparator.comparing(Student::getAge).reversed()).collect(Collectors.toList()); System.out.println("倒序:" + collect2); System.out.println("============================"); } } class Student { private int No; private String name; private int age; private String address; public int getNo() { return No; } public void setNo(int no) { No = no; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } @Override public String toString() { return "Student{" + "No=" + No + ", name=\'" + name + \'\\'\' + ", age=" + age + ", address=\'" + address + \'\\'\' + \'}\'; } }
输出结果:
[Student{No=2, name=\'李四\', age=14, address=\'上海\'}, Student{No=3, name=\'赵六\', age=17, address=\'广州\'}, Student{No=4, name=\'王五\', age=17, address=\'深圳\'}, Student{No=1, name=\'张三\', age=18, address=\'北京\'}] ============================ [Student{No=1, name=\'张三\', age=18, address=\'北京\'}, Student{No=4, name=\'王五\', age=17, address=\'深圳\'}, Student{No=3, name=\'赵六\', age=17, address=\'广州\'}, Student{No=2, name=\'李四\', age=14, address=\'上海\'}]