如何使用原始类型的 Java 流
如何使用原始类型的 Java 流
Java Streams中IntStream原始类型详解
最初发表于 https://asyncq.com/
介绍
- Java 支持原始数据类型,例如 字节 , 短的 , 整数 , 长 , 双倍的 , 字符 , 布尔值 等等。因此,Java 不是面向对象语言的原因之一。
- 自 java 8 发布以来,开发人员对 流 API 并利用其方法编写更多的声明性代码 拉姆达 和方法链。
- 但与此同时,开发人员对 Java 将如何使用流处理原始数据类型感到好奇。
- 因此,在本文中,我们将讨论如何使用 流 API 与原始以及当前的限制是什么以及如何克服它们。
当前设计
- 如果您看到 Stream 接口提供了许多强大的功能来处理集合中的元素,那么它是从 BaseStream 接口扩展而来的。
- BaseStream 接口也被扩展 内部流 , 双流和长流 界面。
[
](https://javarevisited.blogspot.com/2018/08/top-5-java-8-courses-to-learn-online.html)
- 一旦您看到这种设计,您就会立即知道,Java 语言设计已经完成了一些处理原始类型的工作,以便使用来自 流 API。
内部流
-
我们先来说说 IntStream。它是一个旨在处理 int 原始数据类型的接口。
内部流 内部流 = 内部流。 范围关闭 (1, 10);
-
现在,一旦我们获得 IntStream 实例,我们就可以执行正常的流 api 操作,例如 sum、max、 为每个 , 地图 等等
-
我们还可以对 IntStream 进行装箱操作,将其转换为 列表
基本上作为集合的对象类型列表仅适用于对象。 -
拆箱 也是我们在日常开发中需要进行的频繁操作之一。
-
让我们从表示年龄的整数数组中计算平均年龄。
我们可以使用将数组作为参数并将其转换为 IntStream 的方法。 -
由于现在我们有流,我们可以方便地使用 average() 方法来计算平均年龄。
-
让我们也使用流 api 执行一些常见的整数运算,例如 Sum 、 min 、 max 。
转换
-
将一种类型的对象转换为另一种类型是日常 Java 开发人员非常常见的操作。基本上我们必须尊重 API 规范,并且需要在代码中遵循返回类型或参数规范。
-
通常我们必须将一种集合类型转换为元素数组。我们还可以使用轻松地将 IntStream 转换为 Array toArray() 方法再次由 Streams API 提供。
-
此外,我们还可以将一种原始类型转换为另一种,例如从 int 转换为 long ,如下所示。
-
我们看到 IntStream、Long 和 DoubleStream 上的操作在支持的操作方面与 IntStream 没有太大区别。
不支持布尔、字符等。
- 正如您在文章开头提到的设计中看到的那样, java只支持IntStream、LongStream和DoubleStream .但是 CharStream, BooleanStream 呢?
- 我不知道为什么 Java 设计器没有将这些添加到 Streams 中,但是有一些解决方法。
- 下面是我尝试在 chars 数据结构上执行流时的示例。
- 从技术上讲,我们仍然可以使用 IntStream 来计算元素的数量,然后对于每个索引,我们可以使用将 index 转换为 char 的 mapToObject。
- 现在一旦我们有了 Stream
我们可以轻松地执行 Streams API 操作,例如 清楚的 在这种情况下。
结论
- 在本文中,我们将讨论原始数据类型以及如何将原始数据类型与 Java Streams API 一起使用。
- Java BaseStreams 由 Long、Int 和 Double 原始数据类型扩展,但对于其他原始数据类型,我们有某些解决方法。
进一步阅读
跟着我 中等的 & 领英
更多博客@ https://asyncq.com/
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明