首页 > 其他 > 详细

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

时间:2021-04-21 16:12:11      阅读:22      评论:0      收藏:0      [点我收藏+]

一道题串联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);
    }
}

技术分享图片

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

原文:https://www.cnblogs.com/sinlearn/p/14684361.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!