【MapSheep】
[好记性不如烂笔头]
package q;

import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;

import java.util.ArrayList;
import java.util.List;
import java.util.Comparator;
import java.util.stream.Collectors;

public class StreamTest {
    public static void main(String[] args) {
        Person person1 = new Person();
        person1.setAge(21);
        person1.setName("21");

        Person person2 = new Person();
        person2.setAge(19);
        person2.setName("19");

        Person person3 = new Person();
        person3.setAge(19);
        person3.setName("20");

        Person person4 = new Person();
        person4.setAge(20);
        person4.setName("20");

        Person person5 = new Person();
        person5.setAge(19);
        person5.setName("18");

        List<Person> people = new ArrayList<>();
        people.add(person1);
        people.add(person2);
        people.add(person3);
        people.add(person4);
        people.add(person5);

        List<Person> collect1 = people.stream().sorted((Comparator.comparing(Person::getAge))).collect(Collectors.toList());//只根据年龄排序,升序
        System.out.println(collect1);

        List<Person> collect2 = people.stream().sorted((Comparator.comparing(Person::getAge)).reversed()).collect(Collectors.toList());//只根据年龄排序,降序
        System.out.println(collect2);

        List<Person> collect3 = people.stream().sorted((Comparator.comparing(Person::getAge)).thenComparing(Comparator.comparing(Person::getName))).collect(Collectors.toList());//先根据年龄进行排序,遇见相同的,然后根据姓名进行排序,都升序
        System.out.println(collect3);

        List<Person> collect4 = people.stream().sorted((Comparator.comparing(Person::getAge)).thenComparing(Comparator.comparing(Person::getName)).reversed()).collect(Collectors.toList());//先根据年龄进行排序,遇见相同的,然后根据姓名进行排序,降序【都降序】
        System.out.println(collect4);

        List<Person> collect5 = people.stream().sorted(Comparator.comparing(Person::getAge).reversed().thenComparing(Comparator.comparing(Person::getName)).reversed()).collect(Collectors.toList());//年龄升序,姓名降序
        System.out.println(collect5);

        List<Person> collect6 = people.stream().sorted(Comparator.comparing(Person::getAge).reversed().thenComparing(Comparator.comparing(Person::getName))).collect(Collectors.toList());//根据年龄降序,姓名升序
        System.out.println(collect6);
    }
}

@Data
@NoArgsConstructor
@ToString
class Person {
    private String name;
    private Integer age;
}
posted on 2022-01-25 16:07  (Play)  阅读(160)  评论(0编辑  收藏  举报