filter、forEach、map、flatMap

forEach

        ArrayList<User> users = new ArrayList<>();
        
        // Java 8+
        users.forEach(user -> {
            Log.e("nick", user.getNick());
        });
        
        //Java 7 and below
        for(User user:users){
            Log.e("nick", user.getNick());
        }

forEach  只是简单的遍历,不会改变原数组,返回undefined,没办法使用break退出循环或者使用return从函数体内返回。

filter

        users.stream().filter(user -> 
                 !TextUtils.isEmpty(user.getNick())//过滤姓名不为空
           ).forEach(user -> 
                 System.out.println(user.getNick())
           );

        users.parallelStream().filter(user ->                     
                !TextUtils.isEmpty(user.getNick())
           ).forEach(user -> 
                System.out.println(user.getNick())
           );

filter单纯的过滤操作,直接返回传入类型。

map 和 flatMap

java
    
    List<String> nameList = 
          users.stream().map(User::getNick)  //返回用户名
            .limit(10)  //返回前10个元素
            .skip(2)    //扔掉前2个元素
            .collect(Collectors.toList());



kotlin


    var list = listOf(listOf(10, 20), listOf(30, 40), listOf(50, 60))
    var mapList = list.map {
        print(it.toString())
     }

    println()

    var flatMapList = list.flatMap {
        it.asIterable()
    }.map {
        print(it.toString())
    }


打印结果:

  [10, 20][30, 40][50, 60]
  102030405060

map :对每一条输入进行指定操作,然后为每一条输入返回一个对象(返回值可变)

 <R> Stream<R> map(Function<? super T, ? extends R> mapper); 

flatMap:遍历所有元素,为每一个创建一个集合,最后把所有集合放在一个集合中----“先映射后扁平化”

<R> Stream<R> flatMap(Function<? super T, ? extends Stream<? extends R>> mapper);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值