Lambda 排序

转自  https://www.cnblogs.com/franson-2016/p/5593080.html
List<Person> dsdsd = new ArrayList<Person>(){
    {
        add(new Person("Elsdon", "Jaycob", "Java programmer", "male", 43, 2000));
        add(new Person("Tamsen", "Brittany", "Java programmer", "female", 23, 1500));
        add(new Person("Floyd", "Donny", "Java programmer", "male", 33, 1800));
        add(new Person("Sindy", "Jonie", "Java programmer", "female", 32, 1600));
        add(new Person("Vere", "Hervey", "Java programmer", "male", 22, 1200));
        add(new Person("Maude", "Jaimie", "Java programmer", "female", 27, 1900));
        add(new Person("Shawn", "Randall", "Java programmer", "male", 30, 2300));
        add(new Person("Jayden", "Corrina", "Java programmer", "female", 35, 1700));
        add(new Person("Palmer", "Dene", "Java programmer", "male", 33, 2000));
    }
};
正序(根据年龄)
dsdsd.stream().forEach(person -> System.out.printf("%s %s;",person.firstName,person.getAge()));
dsdsd.stream().sorted((Person p, Person p2) ->(p.age-p2.age))
or
dsdsd.stream().sorted((p,  p2) ->(p.age-p2.age))
or
dsdsd.stream().sorted(Comparator.comparing(Person::getAge))
倒叙
dsdsd.stream().sorted((p, p2) ->(p.age-p2.age));
or
dsdsd.stream().sorted(Comparator.comparing(Person::getAge).reversed())

 

姓名根据给定的顺序排序

String sort="Floyd,Jayden,Palmer,Vere,Shawn,Elsdon,Tamsen";
dsdsd.stream().filter(person -> sort.contains(person.firstName)).sorted((p, p2) -> (sort.indexOf(p.firstName) - sort.indexOf(p2.firstName))).forEach(person -> System.out.printf("%s ; ", person.firstName)); System.out.println(""); dsdsd.stream().sorted((p, p2) -> (sort.indexOf(p2.firstName)-sort.indexOf(p.firstName) )).forEach(person -> System.out.printf("%s ; ", person.firstName));

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值