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='上海'}]