开发者学堂课程【Java 高级编程:Stream 基本操作】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/20/detail/426
Stream 基本操作
内容简介:
1.Stream 具体内容
2.Stream 基础操作
1.Stream 具体内容
从 JDK1.8 开始,由于已经到了大数据时代,所以在类集里面也支持有数据的流式分析处理操作,为此就专门供一个 Stream 的接口,同时在 Collection 接口里面也提供有为此接口实例化的方法。
·获取 Stream 接口对象:public default Stream<E>stream();
2.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 型的】
运行结果为: 5
但如果只进行到这里,并未能发挥 Stream 的优势,Stream 最大的优势就是通过函数式编程进行数据的流式处理。
比如想查出在整个过程中带有字母 “J” ,可添加代码
System.out.println(stream.filter((ele)->ele.toLowerCase().contains(“j”)).count());
运行结果为: 2
以上的程序只是实现了一些最基础的数据的个数统计,而更多条件下,我们可能需要的是获取里面的满足条件数据的内容,所以此时可以进行实现数据的采集操作。
2.2 范例:数据采集
继续上个例子
将满足条件的数据收集起来转为 List 集合
List<String>result=stream.filter((ele)->ele.toLowerCase().contains(“j”)).collect(Collectors.toList());
输出result system.out.println(result);
运行结果为:[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());
运行结果为:[JSP, Json]
Stream 的操作主要是利用自身的特点实现数据的分析处理操作。