Stream 基本操作|学习笔记

简介: 快速学习 Stream 基本操作

开发者学堂课程【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 型的】

图片14.png

运行结果为: 5

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

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

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

图片15.png

运行结果为: 2

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

 

2.2 范例:数据采集

继续上个例子

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

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

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

图片16.png

运行结果为:[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());

图片17.png

运行结果为:[JSP, Json]

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

相关文章
|
Java 程序员 网络安全
JUnit5学习之六:参数化测试(Parameterized Tests)基础
了解JUnit5的参数化测试的基本知识
362 2
JUnit5学习之六:参数化测试(Parameterized Tests)基础
|
存储 算法 搜索推荐
【C++ STL基础入门】初识STL
【C++ STL基础入门】初识STL
220 0
|
存储 NoSQL Java
【面试宝藏】Redis 常见面试题解析
Redis 是内存数据结构存储系统,用作数据库、缓存和消息中间件,支持字符串、哈希、列表等数据类型。它的优点包括高性能、原子操作、持久化和复制。相比 Memcached,Redis 提供数据持久化、丰富数据结构和发布/订阅功能。Redis 采用单线程模型,但通过 I/O 多路复用处理高并发。常见的面试问题涉及持久化机制、过期键删除、回收策略、集群和客户端等。
358 4
|
计算机视觉 Python
|
存储 人工智能 文字识别
2024年看AIGC是如何让1688主图焕发新春的
本文主要向大家系统地介绍了1688严选和商品品质化之旅。从买家心智和业务诉求中的痛点与机会到整体的方案和集体上线时的数据和效果,希望进一步提升严选商品的表达和买家转化。
|
定位技术
在获取的静态住宅IP代理时需要注意哪些?
获取高质量静态住宅IP代理需注意三点:1) 确保IP为住宅环境,通过位置和ISP验证;2) 重视代理的稳定性和安全性,以保障服务连续性;3) 遵守法律,合法使用IP资源。
237 0
在获取的静态住宅IP代理时需要注意哪些?
|
Java Android开发
Android桌面快捷方式图标生成与删除 使用Intent与launcher交互
Android桌面快捷方式图标生成与删除 使用Intent与launcher交互
403 1
|
开发工具 数据安全/隐私保护 git
码云——vscode多人协同开发
码云——vscode多人协同开发
384 0
|
安全 网络安全 数据安全/隐私保护
网络安全与信息安全:漏洞、加密技术与安全意识的交汇
在数字化时代,网络安全和信息安全成为维护数据完整性和保障用户隐私的关键。本文将深入探讨网络安全中的常见漏洞,分析加密技术如何作为防御工具被应用,并强调安全意识在防范网络威胁中的重要性。文章通过具体案例和统计数据,揭示了网络安全的脆弱点和加强措施的必要性。