JDK8中的Stream怎么用

发布时间:2021-12-17 14:03:44 作者:小新
来源:亿速云 阅读:173

这篇文章主要介绍了JDK8中的Stream怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

为什么需要 Stream

Stream 作为 Java 8 的一大亮点,它与 java.io 包里的 InputStream 和 OutputStream 是完全不同的概念。它也不同于 StAX 对 XML 解析的 Stream,也不是 Amazon Kinesis 对大数据实时处理的 Stream。Java 8 中的 Stream 是对集合(Collection)对象功能的增强,它专注于对集合对象进行各种非常便利、高效的聚合操作(aggregate operation),或者大批量数据操作 (bulk data operation)。Stream API 借助于同样新出现的 Lambda 表达式,极大的提高编程效率和程序可读性。同时它提供串行和并行两种模式进行汇聚操作,并发模式能够充分利用多核处理器的优势,使用 fork/join 并行方式来拆分任务和加速处理过程。通常编写并行代码很难而且容易出错, 但使用 Stream API 无需编写一行多线程的代码,就可以很方便地写出高性能的并发程序。所以说,Java 8 中首次出现的 java.util.stream 是一个函数式语言+多核时代综合影响的产物。同时,理论上流的数据源可以是无限大的。

从以上介绍上(摘抄自网上= =||)可以看出:

1、JDK8中的Stream的数据源来自集合,Stream是对集合进行操作的;

2、Stream无须显示的编写多线程代码就可实现并行(利用fork/join框架)。

下面就开始用代码简单展示下Stream的用法(主要与传统写法对比)。

遍历集合

遍历集合是对集合最常见的操作了

首先是传统写法:

JDK8中的Stream怎么用

然后是Stream写法:

JDK8中的Stream怎么用

集合的遍历看起来似乎并没有什么太大区别,都是三行,下面换一个复杂的场景

求最大值(集合中都是int类型的值)

传统写法:

JDK8中的Stream怎么用

Stream写法:

JDK8中的Stream怎么用

此时Stream的优势就显而易见了,首先是代码的缩减,最主要的是语义上比第一个要清晰多了(至少我这么认为O(∩_∩)O哈哈哈~)

数据过滤:

数据过滤也是常用的操作之一,下面通过过滤集合中大于10的数来比较一下传统写法和Stream写法的差别。

传统写法:

JDK8中的Stream怎么用

Stream写法:

JDK8中的Stream怎么用

数据转换

数据的转换也是很常见的对集合的操作,下面示范一下将集合中的字符串转成数字的操作(集合中的字符串都是数字)。

首先是传统操作:

JDK8中的Stream怎么用

Stream操作:

JDK8中的Stream怎么用

可以看出这个操作也是很简洁的。

除了以上几种操作外流还能完成许多事情(许多数据库的操作流也都可以完成),各位自己可以尝试一下。另外需要注意的是,默认流是串行操作的,除非自己指定需要并行操作。

获取流的途径:

Collection.stream()-->串行流

Collection.parallelStream()-->并行流

Arrays.stream(T array) or Stream.of()-->串行流

java.util.stream.IntStream.range()-->串行流

.......

除了以上列出的几种外还有其他的方式,不过常用的就这几种了,能满足日常大部分需求了。

感谢你能够认真阅读完这篇文章,希望小编分享的“JDK8中的Stream怎么用”这篇文章对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,更多相关知识等着你来学习!

推荐阅读:
  1. jdk8中stream的函数和特性
  2. Node.js中Stream怎么用

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

jdk8 stream

上一篇:Selenium IDE怎么使用

下一篇:如何进行springboot配置templates直接访问的实现

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》