一、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流思想和常用方法相关推荐

  1. Stream流中的常用方法_concat

    组合:concat 如果有两个流,希望合并成为一个流,那么可以使用Stream 接口的静态方法concat : static <T> Stream<T> concat(Stre ...

  2. Stream流中的常用方法_skip

    跳过前几个:skip 如果希望跳过前几个元素,可以使用skip 方法获取一个截取之后的新流: Stream<T> skip(long n); 如果流的当前长度大于n,则跳过前n个:否则将会 ...

  3. Stream流中的常用方法_limit

    取用前几个:limit limit 方法可以对流进行截取,只取用前n个.方法签名: Stream<T> limit(long maxSize); 参数是一个long型,如果集合当前长度大于 ...

  4. Stream流中的常用方法_count

    统计个数:count 正如旧集合Collection 当中的size 方法一样,流提供count 方法来数一数其中的元素个数: long count(); 该方法返回一个long值代表元素个数(不再像 ...

  5. Stream流中的常用方法_map

    映射:map 如果需要将流中的元素映射到另一个流中,可以使用map 方法.方法签名: <R> Stream<R> map(Function<? super T, ? ex ...

  6. Stream流中的常用方法_filter

    过滤:filter 可以通过filter 方法将一个流转换成另一个子集流.方法签名: Stream<T> filter(Predicate<? super T> predica ...

  7. Stream流中的常用方法_forEach

    流模型的操作很丰富,这里介绍一些常用的API.这些方法可以被分成两种: 延迟方法:返回值类型仍然是Stream 接口自身类型的方法,因此支持链式调用.(除了终结方法外,其余方 法均为延迟方法.) 终结 ...

  8. Java复习第11天---11.3---Java8新特性---Stream流特点和常用方法2

    Java复习第11天---11.3---Java8新特性---Stream流特点和常用方法2 目录 文章目录 1.Stream流特点 2.filter:过滤 3.map:映射 ***后记*** : 内 ...

  9. Stream流创建,常用方法

    常用词句说明 ​ 语法糖: Syntactic sugar 这种语法对语言的功能并没有影响,但是更方便使用,通常来说使用语法糖可以增加程序的可读性. stream简介 A sequence of el ...

最新文章

  1. pip 升级_python的pip命令
  2. python环境_python环境搭建教程
  3. 现在比较流行的三级菜单,京东商城,淘宝网效果等等。(修正版)
  4. 30行代码AC_HDU-5933 ArcSoft‘s Office Rearrangement(模拟+题解报告)
  5. 制作css开关,纯css实现开关效果
  6. leetcode :动态规划
  7. Java 多线程 —— 深入理解 volatile 的原理以及应用
  8. jQuery学习--选择器的使用
  9. Spring Boot 2.2 正式发布,大幅性能提升 + Java 13 支持
  10. 蓝桥杯第三届省赛JAVA真题----取球博弈
  11. 玩转Spring——Spring IOC/DI
  12. 水涨船高!造车新势力平均月薪15367元,自动驾驶算法岗年薪可达百万
  13. Linus 发文宣布Linux Kernel 5.0 正式发布
  14. php mysql分页_PHP+Mysql实现分页
  15. Eclipse自己定义keystore
  16. tp交换机管理页面_TP-Link交换机管理设置(RSSManager适合TP-Link楼道交换机)
  17. spring boot火车票预订系统毕业设计-附源码091029
  18. 在HTML中 怎么一张图片上在放一张图片,css sprites把很多小图集成在一张图片上...
  19. mysql_fetch_array() expects parameter_求救!mysql_fetch_array() expects parameter 1 to be resource...
  20. 【Flutter组件】仿抖音双击点赞弹出爱心效果(可连点)

热门文章

  1. MySQL--SQL中的安全问题
  2. asp.net表单提交方法:GET\POST介绍
  3. 2阶节IIR算法C语言源码
  4. 3013-04-13 腾讯笔试
  5. 在预览fastreport报表之前改变一些报表对象的属性
  6. 何时使用委托而不使用接口
  7. node --- 在node中使用mongoosemongoDB的安装
  8. 如何构建一个真实的推荐系统?
  9. Python高级特性:列表生成式
  10. 青岛智能院助力智慧城市 打造智能产业“黄埔军校”