Stream流思想和常用方法
一、IO流用于读写;Stream流用于处理数组和集合数据;
1、传统集合遍历:
2、使用Stream流的方式过滤:
其中,链式编程(返回值就是对象自己)中,filter使用的是Predicate函数式接口,它的唯一抽象方法是Test()布尔判断:
遍历方法forEach()使用的是数据消费Comsumer函数式接口唯一抽象方法是accept()方法,方法体中(lambda表达式)就是对入参数据经行处理使用就行::
2、Stream流的思想: 是个生产线,只处理获取的数据源数据,不存储数据:
其中,map步骤,映射可以改变集合元素的数据类型;
二、获取集合的两种方法
1、Collection集合的List和Set单列集合:
其中,String的底层就是一个字节数组;
2、Map双列集合集合:
3、Stream类的静态方法of()获取:
三、Stream流的常用方法:
其中,前面延迟方法是处理集合数据,最后终结方法是真正的改变数据元素;
1、终结方法for each
2、延迟方法 filter
3、Stream是管道流,只能被消费(使用)一次;
异常:
4、延迟方法map方法,使用的是函数式接口function接口,的apply唯一抽象方法:
function接口的唯一抽象方法apply:
5、终结方法count()
6、延迟方法limit:
7、延迟方法skip:
8、Stream类的静态方法concat() , 合并流
9、集合元素处理实例
9.1传统集合方式处理:
从两个集合中选几个String类型的name 满足条件的元素到新集合中并创建person对象:
其中,addAll是把一个集合的元素都添加到当前集合对象中;
9.2Stream流的方式
其中,Stream类静态方法concat(stream1, stream2),map方法映射,将集合中元素数据类型转换,String应用类型转换成Person引用类型,使用forEach() 遍历处理终结;
转载于:https://www.cnblogs.com/wmqiang/p/11521353.html
Stream流思想和常用方法相关推荐
- Stream流中的常用方法_concat
组合:concat 如果有两个流,希望合并成为一个流,那么可以使用Stream 接口的静态方法concat : static <T> Stream<T> concat(Stre ...
- Stream流中的常用方法_skip
跳过前几个:skip 如果希望跳过前几个元素,可以使用skip 方法获取一个截取之后的新流: Stream<T> skip(long n); 如果流的当前长度大于n,则跳过前n个:否则将会 ...
- Stream流中的常用方法_limit
取用前几个:limit limit 方法可以对流进行截取,只取用前n个.方法签名: Stream<T> limit(long maxSize); 参数是一个long型,如果集合当前长度大于 ...
- Stream流中的常用方法_count
统计个数:count 正如旧集合Collection 当中的size 方法一样,流提供count 方法来数一数其中的元素个数: long count(); 该方法返回一个long值代表元素个数(不再像 ...
- Stream流中的常用方法_map
映射:map 如果需要将流中的元素映射到另一个流中,可以使用map 方法.方法签名: <R> Stream<R> map(Function<? super T, ? ex ...
- Stream流中的常用方法_filter
过滤:filter 可以通过filter 方法将一个流转换成另一个子集流.方法签名: Stream<T> filter(Predicate<? super T> predica ...
- Stream流中的常用方法_forEach
流模型的操作很丰富,这里介绍一些常用的API.这些方法可以被分成两种: 延迟方法:返回值类型仍然是Stream 接口自身类型的方法,因此支持链式调用.(除了终结方法外,其余方 法均为延迟方法.) 终结 ...
- Java复习第11天---11.3---Java8新特性---Stream流特点和常用方法2
Java复习第11天---11.3---Java8新特性---Stream流特点和常用方法2 目录 文章目录 1.Stream流特点 2.filter:过滤 3.map:映射 ***后记*** : 内 ...
- Stream流创建,常用方法
常用词句说明 语法糖: Syntactic sugar 这种语法对语言的功能并没有影响,但是更方便使用,通常来说使用语法糖可以增加程序的可读性. stream简介 A sequence of el ...
最新文章
- pip 升级_python的pip命令
- python环境_python环境搭建教程
- 现在比较流行的三级菜单,京东商城,淘宝网效果等等。(修正版)
- 30行代码AC_HDU-5933 ArcSoft‘s Office Rearrangement(模拟+题解报告)
- 制作css开关,纯css实现开关效果
- leetcode :动态规划
- Java 多线程 —— 深入理解 volatile 的原理以及应用
- jQuery学习--选择器的使用
- Spring Boot 2.2 正式发布,大幅性能提升 + Java 13 支持
- 蓝桥杯第三届省赛JAVA真题----取球博弈
- 玩转Spring——Spring IOC/DI
- 水涨船高!造车新势力平均月薪15367元,自动驾驶算法岗年薪可达百万
- Linus 发文宣布Linux Kernel 5.0 正式发布
- php mysql分页_PHP+Mysql实现分页
- Eclipse自己定义keystore
- tp交换机管理页面_TP-Link交换机管理设置(RSSManager适合TP-Link楼道交换机)
- spring boot火车票预订系统毕业设计-附源码091029
- 在HTML中 怎么一张图片上在放一张图片,css sprites把很多小图集成在一张图片上...
- mysql_fetch_array() expects parameter_求救!mysql_fetch_array() expects parameter 1 to be resource...
- 【Flutter组件】仿抖音双击点赞弹出爱心效果(可连点)