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类对象)。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)