如何使用原始类型的 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 版权协议,转载请附上原文出处链接和本声明

本文链接:https://www.qanswer.top/23520/11071001

posted @ 2022-09-10 01:11  哈哈哈来了啊啊啊  阅读(46)  评论(0编辑  收藏  举报