ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

如何使用原始类型的 Java 流

2022-09-10 02:04:46  阅读:244  来源: 互联网

标签:Java API 原始 类型 IntStream 原始数据 我们


如何使用原始类型的 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

标签:Java,API,原始,类型,IntStream,原始数据,我们
来源: https://www.cnblogs.com/amboke/p/16675864.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有