Stream流中的常用方法_forEach和filter

Stream流中的常用方法_forEach

流模型的操作比较丰富,这些方法可以被分成两种:

>延迟方法:返回值类型仍然是Stream接口自身类型的方法,因此支持链式调用。(除了终结方法外,其余方法均为延迟方法。)

>终结方法:返回值类型不再是Stream接口自身类型的方法,因此不再支持类似StringBuilder那样的链式调用。终结方法包括count和forEach方法。

Stream流中的常用方法_forEach

void forEach(Consumer<? super T>action);

该方法接收一个Consumer接口函数,会将每一个流元素交给该函数进行处理。

Consumer接口是一个消费型的函数式接口,可以传递Lambda表达式,消费数据

>forEach方法,用来遍历流中的数据

 是一个终结方法,遍历之后就不能继续调用Stream流中的其他方法

        //获取一个Stream流
        Stream<String> stream = Stream.of("张三", "李四", "王五", "赵六", "田七");
        //使用Stream流中的方法forEach对Stream流中的数据进行遍历
        /*stream.forEach((String name)->{
            System.out.println(name);
        });*/
        //优化
        stream.forEach(name->System.out.println(name));

Stream流中的常用方法_filter

Stream流中的常用方法_filter:用于对Stream流中的数据进行过滤

Stream<T> filter(Predicate<? super T> predicate);

filter方法的参数Predicate是一个函数式接口,所以可以传递Lambda表达式,对数据进行过滤

Predicate中的抽象方法:

  Boolean test(T t);

Stream<String> stream = Stream.of("张三", "李四", "张五", "赵六");
//对Stream流中的元素进行过滤,只要姓张的人
Stream<String> stream1 = stream.filter((String name)->{return name.startsWith("张");});
//遍历Stream2流
stream1.forEach(name-> System.out.println(name));

 

 

posted @ 2022-07-21 09:45  魔光领域  阅读(230)  评论(0编辑  收藏  举报