Stream流的特点_只能使用一次与Stream流中的常用方法_map

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

Stream流属于管道流,只能被消费(使用)一次
第一个Stream流调用完毕方法,数据就会流转到下一个Stream上
而这时第一个Stream流已经使用完毕,就会关闭了
所以第一个Stream流就不能再调用方法了
IllegalStateException: stream has already been operated upon or closed
(IllegalStateException:流已经被操作或关闭)

 

当瓶子走到下一个步骤的时候后面的流就会关闭

所以Stream流只能使用一次

 

 

 

 

Stream流中的常用方法_map

map:可以叫映射或者转换

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

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

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

 

复制Function接口

此前我们已经学习过java.util.stream.Function函数式接口,其中唯一的抽象方法为︰ Function中的抽象方法:

 R apply(T t);

这可以将一种T类型转换成R类型,而这种的动作,就称为映射

map方法的基本使用

package day01.Demo01_Day016;

import java.util.stream.Stream;

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

<R> Stream<R> map(Function<? super T,? extends R> mapper);
1
该接口需要一个Function函数式接口参数,可以将当前流中的T类型数据转换为另一种R类型的流
Function中的抽象方法:
    R apply(T t);
     */
public class Demo04Stream_map {
        public static void main(String[] args) {
            //获取一个String类型的Stream流
            Stream<String> stream = Stream.of("1", "2", "3", "4", "5");
            //使用map方法,把字符串类型的整数,转换(映射)为Integer类型的整数
            Stream<Integer> stream1 = stream.map(s -> Integer.parseInt(s));
            //遍历stream1流
            stream1.forEach(i-> System.out.println(i));

        }


}

 这段代码中,map方法的参数通过方法引用,将字符串类型转换成为了int类型(并自动装箱为Integer类对象)。

posted @ 2022-10-12 09:01  zj勇敢飞,xx永相随  阅读(217)  评论(0编辑  收藏  举报