一道题串联lambda表达式、链式编程、函数式接口、Stream流式计算

一道题串联lambda表达式、链式编程、函数式接口、Stream流式计算

题目:

题目要求:一分钟内完成此题,只能用一行代码实现! 现在有5个用户!筛选: 
1、ID 必须是偶数 
2、年龄必须大于23岁 
3、用户名转为大写字母 
4、用户名字母倒着排序 
5、只输出一个用户! 
用户类:
public class User {
    private int id;
    private String name;
    private int age;
}

题解:

import javax.crypto.spec.PSource;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.function.Function;
import java.util.function.Predicate;

public class Test {
    public static void main(String[] args) {
        /*** 题目要求:一分钟内完成此题,只能用一行代码实现!
         *  现在有5个用户!筛选:
         *  1、ID 必须是偶数
         *  2、年龄必须大于23岁
         *  3、用户名转为大写字母
         *  4、用户名字母倒着排序
         *  5、只输出一个用户!
         *  */
        User u1 = new User(1,"a",21);
        User u2 = new User(2,"b",22);
        User u3 = new User(3,"c",23);
        User u4 = new User(4,"d",24);
        User u5 = new User(6,"e",25);
        List<User> list = Arrays.asList(u1,u2,u3,u4,u5);

        list.stream().filter(u->{return u.getId()%2==0;})
                .filter(u->{return u.getAge()>23;})
                .map(u->{return u.getName().toUpperCase();})
                .sorted((uu1,uu2)->{return uu1.compareTo(uu2);})
                .limit(1)
                .forEach(System.out::println);
    }
}

image-20210421105903238

posted @ 2021-04-21 11:00  sinlearn  阅读(129)  评论(0编辑  收藏  举报