天天看点

Stream 基本操作|学习笔记

开发者学堂课程【Java 高级编程:Stream 基本操作】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:

https://developer.aliyun.com/learning/course/20/detail/426

Stream 基本操作

内容简介:

1.Stream 具体内容

2.Stream 基础操作

从 JDK1.8 开始,由于已经到了大数据时代,所以在类集里面也支持有数据的流式分析处理操作,为此就专门供一个 Stream 的接口,同时在 Collection 接口里面也提供有为此接口实例化的方法。

·获取 Stream 接口对象:​

public default Stream<E>stream();

Stream 主要功能是进行数据的分析处理,同时主要是针对于集合中的数据进行分析操作。

2.1 范例:Stream 的基本操作

先简单的写一个程序代码:

首先在 Collections.addAll(all, ,);中存上几个任意操作标志,如 “Java”“JavaScript”,“Python”,“Ruby”,“Go”。

接着对 Stream 对象实例化

Stream<String> stream = all.stream();

获得 Stream 接口对象后,输出元素个数

System.out.println(stream.count());  

​【注意这里的 count 是 long 型的】

Stream 基本操作|学习笔记

运行结果为: 5

但如果只进行到这里,并未能发挥 Stream 的优势,Stream 最大的优势就是通过函数式编程进行数据的流式处理。

比如想查出在整个过程中带有字母 “J” ,可添加代码

System.out.println(stream.filter((ele)->ele.toLowerCase().contains(“j”)).count());

Stream 基本操作|学习笔记

运行结果为: 2

以上的程序只是实现了一些最基础的数据的个数统计,而更多条件下,我们可能需要的是获取里面的满足条件数据的内容,所以此时可以进行实现数据的采集操作。

2.2 范例:数据采集

继续上个例子

将满足条件的数据收集起来转为 List 集合

List<String>result=stream.filter((ele)->ele.toLowerCase().contains(“j”)).collect(Collectors.toList());

输出result                system.out.println(result);

Stream 基本操作|学习笔记

运行结果为:​

[Java, JavaScript]

可以发现整个过程中,都是用函数式这种模式 来进行整体的描述操作·。

在 Stream 数据流处理的过程之中还允许数据的分页处理,提供有两个方法:

·设置取出的最大数据量:​

public Stream<T>limit(long maxSize);

·跳过指定数据量:​

public Stream<T>skip(long n)。

2.3 范例:观察分页

再添加加两个任意的操作标志,“JSP”,“Json”

跳出两个标志,取出两个标志再收集

List<String>result=stream.filter((ele)->ele.toLowerCase().contains(“j”)).skip(2).limit(2).collect(Collectors.toList());

Stream 基本操作|学习笔记

[JSP, Json]

Stream 的操作主要是利用自身的特点实现数据的分析处理操作。