Stream流的特点以及常用方法map

Stream流的特点——只能使用一次

Stream流属于管道流,只能被消费(使用)一次 第一个Stream流调用完毕方法,

数据就会流转到下一个Stream上 而这时第一个Stream流已经使用完毕,

就会关闭了 所以第一个Stream流就不能调用方法了

    public static void main(String[] args) {
        //创建一个Stream流
        Stream<String> stream = Stream.of("张无忌", "周芷若", "赵敏", "张强", "张三丰");
        //对Stream流中的元素进行过滤,只要姓张的
        Stream<String> stream1 = stream.filter((String name) -> {
            return name.startsWith("张");
        });
        //遍历Stream流
        stream1.forEach(name-> System.out.println(name));
    }

在这段代码中第一个Stream流调用filter方法后就已经关闭了,如果再调用forEach方法就会产生异常

 

 

 

 

 

 

 

Stream流的常用方法map

如果需要将流中的元素映射到另一个流中,可以使用map方法

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

该接口需要一个Function函数式接口参数,可以将当前流中的T类型数据转化为另一种R类型的流。

Function中的抽象方法:
  R apply(T t);

    public static void main(String[] args) {
        //创建一个Stream流
        Stream<String> stream = Stream.of("1","2","3","4","5","6");
        //使用map方法,把字符串类型的整数,转换为Integer类型的整数
        Stream<Integer> stream1 = stream.map((String s) -> {
            return Integer.parseInt(s);
        });
        //遍历stream流
        stream1.forEach(i-> System.out.println(i));
    }

 

posted @ 2022-07-21 09:42  xjw12345  阅读(172)  评论(1)    收藏  举报