Stream流的特点_只能使用一次和Stream流中的常用方法_map
Stream流的特点_只能使用一次
public class FilterStudy04 {
    public static void main(String[] args) {
        //创建一个Stream流
        Stream<String> stream = Stream.of("张三丰", "张翠山", "赵敏", "周芷若", "张无忌");
        //对Stream流中的元素进行过滤,只要姓张的人
        Stream<String> stream2 = stream.filter((String name) -> {
            return name.startsWith("张");
        });
        //遍历stream2
        stream2.forEach(s -> System.out.println(s));
        //优化写法
//        stream.filter(s -> s.startsWith("张")).forEach(s -> System.out.println(s));
        /**
         * Stream流属于管道流,只能被消费(使用)一次
         * 第一个Stream流调用完毕方法,数据就会流转到下一个Stream上,而这时第一个Stream流已经使用完毕,就会关闭了
         * 所以第一个Stream流就不能再调用方法了
         * IllegalStateException: stream has already been operated upon or closed
         */
        stream.forEach(s -> System.out.println(s));
    }
}
Stream流中的常用方法_map
映射:map
如果需要将流中的元素映射到另一个流中,就可以使用map方法。方法签名:
java <R> Stream<R> map(Function<? super T,? extends R> mapper)
该接口需要一个Function函数式接口函数,可以将当前流中T类型数据转换为另一种R类型的流

复习Function接口
此前我们已经学习过java.util.stream.Function函数式接口,其中唯一的抽象方法为:
R apply(T t);
这可以将一种T类型转换称为R类型,而这种转换的动作,就称为映射
基本使用:
package com.yang.Test.StreamStudy;
import java.util.stream.Stream;
public class mapStudy {
    public static void main(String[] args) {
        //获取一个String类型的Stream流
        Stream<String> stream = Stream.of("1", "2", "3", "4");
/*        //使用map方法,把字符串类型的整数,转换为Integer类型的整数
        Stream<Integer> stream2 = stream.map((String s) -> {
            return Integer.parseInt(s);
        });
        //遍历stream2流
        stream2.forEach((Integer integer)->{
            System.out.println(integer);
        });*/
        //优化写法
        stream.map(s -> Integer.parseInt(s)).forEach(integer -> System.out.println(integer+5));
    }
}
Stream流的特点_只能使用一次和Stream流中的常用方法_map的更多相关文章
- Stream流中的常用方法
		count package com.yang.Test.StreamStudy; import java.util.stream.Stream; /** * 统计荷属:count * 正如旧集合Col ... 
- Stream流中的常用方法foeEach和Stream流中的常用方法filter
		延迟方法:返回值类型仍然是Stream接口自身类型的方法,因此支持链式调用.(除了中介方法外,其余方法均为延迟方法) 终结方法:返回值类型不再是Stream接口自身类型的方法,因此不再支持类似Stri ... 
- IO流回顾与总结第一篇之字节流与字符流的操作。。。。。
		一.引言 趁着年后的这点时间,抓紧点时间回顾下javase中的IO流,以往都是用到那些常用的IO类,这次来个全点的,有不对的地方还请大神指正一下,做到坚持写博的习惯来...... 回归正题,IO流顾名 ... 
- [转]【流媒體】H264—MP4格式及在MP4文件中提取H264的SPS、PPS及码流
		[流媒體]H264—MP4格式及在MP4文件中提取H264的SPS.PPS及码流 SkySeraph Apr 1st 2012 Email:skyseraph00@163.com 一.MP4格式基本 ... 
- 详解API Gateway流控实现,揭开ROMA平台高性能秒级流控的技术细节
		摘要:ROMA平台的核心系统ROMA Connect源自华为流程IT的集成平台,在华为内部有超过15年的企业业务集成经验. 本文分享自华为云社区<ROMA集成关键技术(1)-API流控技术详解& ... 
- Raw Socket vs Stream Socket vs datagram socket,原始套接字与流式套接字与数据报套接字
		https://opensourceforu.com/2015/03/a-guide-to-using-raw-sockets/ In this tutorial, lets take a look ... 
- 各种RTMP直播流播放权限_音视频_数据花屏_问题检测与分析工具EasyRTMPClient
		之前的一篇博客<网络摄像机IPCamera RTSP直播播放网络/权限/音视频数据/花屏问题检测与分析助手EasyRTSPClient>,我们介绍了RTSP流的检测和分析工具EasyRTS ... 
- 05.网站点击流数据分析项目_模块开发_ETL
		项目的数据分析过程在hadoop集群上实现,主要应用hive数据仓库工具,因此,采集并经过预处理后的数据,需 要加载到hive数据仓库中,以进行后续的挖掘分析. ETL:用来描述将数据从来源端经过抽取 ... 
- 阶段1 语言基础+高级_1-3-Java语言高级_06-File类与IO流_09 序列化流_6_练习_序列化集合
随机推荐
- C# .NET ML.NET 机器学习 图像分类
			一. 准备工作 IDE是 VS2019.先下载好"resnet_v2_50_299.meta"这个文件,放入"C:\Users\jk\AppData\Local\Temp ... 
- 好客租房23-react组件的两种创建方式(抽离为独立js)
			2.3抽离为单独组件 组件作为一个单独的个体,一般把每个组件放在单独的js中文件中 1创建hello.js 2在hello.js中导入React 3创建组件(函数或者类) hello.js子组件 // ... 
- 论文解读(AGE)《Adaptive Graph Encoder for Attributed Graph Embedding》
			论文信息 论文标题:Adaptive Graph Encoder for Attributed Graph Embedding论文作者:Gayan K. Kulatilleke, Marius Por ... 
- 【freertos】009-任务控制
			目录 前言 9.1 相对延时 9.1.1 函数原型 9.1.2 函数说明 9.1.3 参考例子 9.2 绝对延时 9.2.1 函数原型 9.2.2 函数说明 9.2.3 参考例子 9.3 获取任务优先 ... 
- redis-server.exe双击闪退
			转自 https://blog.csdn.net/qq_40361770/article/details/80454248 解决方法: 1-win+R 打开命令行 2-cd至redis目录,例如 D: ... 
- JAVA - 请说明”static”关键字是什么意思?Java中是否可以覆盖(override)一个private或者是static的方法?
			请说明"static"关键字是什么意思?Java中是否可以覆盖(override)一个private或者是static的方法? "static"关键字表明一个成 ... 
- 百度地图API 地图圈区域并计算坐标点是否在区域内
			<!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ... 
- Linux如何安装JDK1.8版本详细步骤
			Linux如何安装JDK1.8版本详细步骤 1.下载JDK1.8版本压缩包 进入官网:https://www.oracle.com/java/technologies/downloads/ 2.将压缩 ... 
- JS:条件语句3
			1.while while 语句只要指定条件为 true,就会执行循环. 语法: while(条件){ 语句: } 例: var i = 0; while (i < 5) { console.l ... 
- Vue开发组件之替代marquee标签,超出宽度文字横向滚动效果
			一.npm 安装 如果你想安装插件(自己写的)安装 install dependencies npm i marquee-components 使用 在main.js引入 import marquee ... 
