lambda表达式中stream()的用法

Stream流引入

Lambda表达式,基于Lambda所带来的函数式编程,又引入了一个全新的Stream概念,用于解决集合类库既有的鼻端。
== 现有一个需求: ==
将list集合中姓张的元素过滤到一个新的集合中,然后将过滤出来的姓张的元素中,再过滤出来长度为3的元素,存储到一个新的集合中

        // 已知的知识来解决需求
      List<String> list1 = new ArrayList<>();
      list1.add("张老三");
      list1.add("张小三");
      list1.add("李四");
      list1.add("赵五");
      list1.add("张六");
      list1.add("王八");

      ArrayList<String> list2 = new ArrayList<>();
      // 1.将list集合中姓张的元素过滤到一个新的集合中
      for(String name : list1){
          if(name.startsWith("张")){
              list2.add(name);
          }
      }
      ArrayList list3 = new ArrayList();
      for (String name : list2) {
          if (name.length() == 3){
              list3.add(name);
          }
      }
      System.out.println(list3);

      输出结果:
          [张老三, 张小三]

2.用Stream流操作集合,获取流,过滤操作,打印输出

list1.stream().filter((String name)->name.startsWith("张")).filter((String name)->name.length()==3).forEach((String name)->{
          System.out.println("符合条件的姓名:" + name);
      });

二、Stream流的格式


Stream<T> filter(Predicate<? super T> predicate);
            -----> 参数:public interface Predicate<T>  (函数式接口)
                    ----> 抽象方法:boolean test(T t);
            -----> 参数:public interface Consumer<T>  (函数式接口)
                    ----> 抽象方法:boolean test(T t);

在这里插入图片描述

具体参考:
https://blog.csdn.net/m0_60489526/article/details/119984236

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值