行业资讯 2025年08月6日
0 收藏 0 点赞 618 浏览 2171 个字
摘要 :

文章目录 1.将数组转换为Stream流 1.1 方法语法 1.2 原始类型数组转换为Stream流 1.3 对象数组转换为Stream流 2. 将Stream流转换为数组 2.1 方法语法 2.2.Stream流到……




  • 1.将数组转换为Stream流
    • 1.1 方法语法
    • 1.2 原始类型数组转换为Stream流
    • 1.3 对象数组转换为Stream流
  • 2. 将Stream流转换为数组
    • 2.1 方法语法
    • 2.2.Stream流到原始类型数组
    • 2.3.Stream流到对象数组
  • 3. 结论

学习在Java中如何将Stream流转换为数组,以及如何将数组转换为Stream。我们将学习将原始数据类型和对象类型进行转换。

// 快速指南
String[] stringArray = {\"a\", \"b\", \"c\", \"d\", \"e\"};
// array 转 stream
Stream<String> strStream = Arrays.stream(stringArray);
// stream 转 array
String[] stringArray = stream.toArray(String[]::new);

请注意,Java流API为原始数据类型的流提供了以下专门类。这些类支持许多有用的顺序和并行聚合操作,例如sum()和average()。考虑使用这些类来存储原始数据类型的流,以便更好地与其他API兼容。

  • IntStream – int值的流
  • LongStream – long值的流
  • DoubleStream – double值的流

1.将数组转换为Stream流

1.1 方法语法

将数组转换为Stream的主要是Arrays.stream()方法。这是一个重载方法。

  • Stream stream(T[] array) : 返回具有指定数组作为数据源的顺序流。
  • Stream stream(T[] array, int start, int end) : 返回从索引位置start(包括)到end(不包括)的数组项的顺序流。

让我们通过以下示例来了解其用法。

1.2 原始类型数组转换为Stream流

Java程序将int数组转换为IntStream。

int[] primitiveArray = {0,1,2,3,4};
IntStream intStream = Arrays.stream(primitiveArray);

Java程序将int数组转换为Stream of Integer对象。

int[] primitiveArray = {0,1,2,3,4};
Stream<Integer> integerStream = Arrays.stream(primitiveArray).boxed();

1.3 对象数组转换为Stream流

Java程序将对象数组转换为对象流。我们可以将这种方法应用于任何类型的对象,包括Java对象(String,Integer等)或自定义对象(User,Employee等)。

String[] stringArray = {\"a\", \"b\", \"c\", \"d\", \"e\"};
Stream<String> strStream = Arrays.stream(stringArray);

2. 将Stream流转换为数组

2.1 方法语法

将流转换为数组的主要方法是Stream.toArray()。这也是一个重载方法。

  • Object[] toArray() :返回包含指定流元素的数组。默认情况下,此方法的返回类型为Object[]。
  • T[] toArray(IntFunction<T[]> generator) :使用提供的生成器函数返回包含此流元素的数组。生成器产生所需类型和提供长度的新数组。

让我们通过一些例子来理解toArray()方法的用法。

2.2.Stream流到原始类型数组

从IntStream获取整数流的Java程序。

IntStream intStream = Arrays.stream(new int[]{1,2,3});
int[] primitiveArray = intStream.toArray();

Java程序将整数流转换为原始int数组。请注意,mapToInt()返回IntStream类型的实例。并且IntStream.toArray()返回一个int[]。这就是我们没有使用任何生成器函数的原因。

Stream<Integer> integerStream = Arrays.stream(new Integer[]{1,2,3});
int[] primitiveArray = integerStream.mapToInt(i -> i).toArray();

2.3.Stream流到对象数组

将对象流转换为对象数组的Java程序。它适用于所有Java类和自定义对象。默认情况下,toArray()将返回一个Object[]。为了获得String[],我们使用生成器函数String[]::new来创建String数组的实例。

Stream<String> strStream = Arrays.stream(new String[]{});
String[] stringArray = strStream.toArray(String[]::new);

3. 结论

在这个简短的教程中,我们学习了如何将Stream流转换为数组,包括原始类型和复杂对象类型。我们学习了如何使用Arrays.stream()和Stream.toArray()方法和它们的示例。

我们还了解到,通常建议使用专门类,如IntStream,来获得原始值的流。这些类为原始类型提供了自定义方法,以及许多有用的实用方法。

微信扫一扫

支付宝扫一扫

版权: 转载请注明出处:https://www.zuozi.net/9610.html

管理员

相关推荐
2025-08-06

文章目录 一、Reader 接口概述 1.1 什么是 Reader 接口? 1.2 Reader 与 InputStream 的区别 1.3 …

988
2025-08-06

文章目录 一、事件溯源 (一)核心概念 (二)Kafka与Golang的优势 (三)完整代码实现 二、命令…

465
2025-08-06

文章目录 一、证明GC期间执行native函数的线程仍在运行 二、native线程操作Java对象的影响及处理方…

348
2025-08-06

文章目录 一、事务基础概念 二、MyBatis事务管理机制 (一)JDBC原生事务管理(JdbcTransaction)…

456
2025-08-06

文章目录 一、SnowFlake算法核心原理 二、SnowFlake算法工作流程详解 三、SnowFlake算法的Java代码…

517
2025-08-06

文章目录 一、本地Jar包的加载操作 二、本地Class的加载方法 三、远程Jar包的加载方式 你知道Groo…

832
发表评论
暂无评论

还没有评论呢,快来抢沙发~

助力内容变现

将您的收入提升到一个新的水平

点击联系客服

在线时间:08:00-23:00

客服QQ

122325244

客服电话

400-888-8888

客服邮箱

122325244@qq.com

扫描二维码

关注微信客服号