1.概念
Stream是一种可供流式操作的数据视图有些类似数据库中视图的概念它不改变源数据集合如果对其进行改变的操作它会返回一个新的数据集合。
总的来讲它有三大特性:在之后我们会对照着详细说明
1、stream不存储数据
2、stream不改变源数据
3、stream的延迟执行特性
2.优点
1、代码简洁,函数式编程写出的代码简洁且意图明确,使用stream接口让你从此告别for循环。
2、多核友好,Java函数式编程使得编写并行程序从未如此简单,你需要的全部就是调用一下parallel()方法。
3.Stream API常用方法
Stream操作分类
中间操作(Intermediate operations)
无状态(Stateless)
unordered() filter() map() mapToInt() mapToLong() mapToDouble() flatMap() flatMapToInt() flatMapToLong() flatMapToDouble() peek()
有状态(Stateful)
distinct() sorted() sorted() limit() skip()
结束操作(Terminal operations)
非短路操作
forEach() forEachOrdered() toArray() reduce() collect() max() min() count()
短路操作(short-circuiting)
anyMatch() allMatch() noneMatch() findFirst() findAny()
常用中间件
filter:过滤流,过滤流中的元素,返回一个符合条件的Stream
map:转换流,将一种类型的流转换为另外一种流。(mapToInt、mapToLong、mapToDouble 返回int、long、double基本类型对应的Stream)
flatMap:简单的说,就是一个或多个流合并成一个新流。(flatMapToInt、flatMapToLong、flatMapToDouble 返回对应的IntStream、LongStream、DoubleStream流。)
distinct:返回去重的Stream。
sorted:返回一个排序的Stream。
peek:主要用来查看流中元素的数据状态。
limit:返回前n个元素数据组成的Stream。属于短路操作
skip:返回第n个元素后面数据组成的Stream。
标签:返回,更丝,Stream,stream,sorted,操作,数据,Java8
来源: https://www.cnblogs.com/superSubfn/p/12029634.html