Stream流之List、Integer[]、int[]相互转化

本文详细介绍如何使用Java Stream API实现int数组、Integer数组与List之间的相互转换,包括int[]转Integer[]、int[]转List、Integer[]转int[]、Integer[]转List、List转Integer[]及List转int[]的具体操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Stream流之List、Integer[]、int[]相互转化

一、int[ ]

1.1、int[ ] 转 Integer[ ]

public static void main(String[] args) {
		int[] arr = { 1, 2, 3, 4, 5 };
		List<Integer> list = Arrays.stream(arr).boxed().collect(Collectors.toList());
		list.forEach(e -> System.out.print(e + " "));
	}
  • Arrays.stream(arr) 将int数组转化为IntStream
  • bosed() 将每一个整数进行装箱,把IntStream 转换成了 Stream< Integer >
  • collect(Collectors.toList()) 将对象流收集为集合,转化为 List< Integer >

1.2、int[ ] 转 List< Integer >

Integer[] integers = Arrays.stream(arr).boxed().toArray(Integer[]::new);
  • Arrays.stream(arr) 还是转化为流
  • boxed() 装箱,将基本类型流转换为对象流
  • toArray(Integer[ ]::new) 将对象流转换为对象数组

二、Integer[ ]

2.1、Integer[ ]转 int[ ]


 	int[] arr= Arrays.stream(integers).mapToInt(Integer::valueOf).toArray();
 	
  • mapToInt(Integer::valueOf) 将对象流转化为基本类型流
  • toArray() 转化为int数组*

2.2、Integer[ ]转 List< Integer >


		Integer[] integers = {1,2,3,4,5};
		List<Integer> list = Arrays.asList(integers); 
		

三、List< Integer >

3.1、List< Integer > 转 Integer[ ]


		Integer[] integers = list.toArray(new Integer[list.size()]);

3.2、List< Integer > 转 int[ ]

		int[] arr2 = list.stream().mapToInt(Integer::valueOf).toArray();
### Java Stream 将 `List<Integer>` 转换为字符串 在Java中,可以利用`Stream API`来处理集合数据并将其转换为目标形式。对于将包含`int`类型元素的列表(即`List<Integer>`)通过`Stream`转换为字符串的操作,可以通过以下方式实现: #### 方法描述 使用`Collectors.joining()`方法可以方便地将中的元素连接成一个单一的字符串[^2]。此方法允许指定分隔符、前缀和后缀。 以下是具体的代码示例: ```java import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; public class ListToStringExample { public static void main(String[] args) { List<Integer> intList = Arrays.asList(1, 2, 3, 4, 5); // 使用 Stream 和 Collectors.joining 进行转换 String result = intList.stream() .map(Object::toString) // 将 Integer 映射为 String 类型 .collect(Collectors.joining(", ")); // 指定分隔符 ", " System.out.println(result); // 输出: 1, 2, 3, 4, 5 } } ``` 上述代码展示了如何将整数列表转换为逗号分隔的字符串。其中的关键在于调用了`stream()`方法生成对象,并通过`map()`函数将每个`Integer`映射为其对应的字符串表示形式。最后,借助于`Collectors.joining()`完成最终拼接操作。 如果希望自定义其他格式化逻辑,则可以在`map()`阶段应用相应的转换规则。例如,添加括号包裹每个数值或者调整其大小写等特性均可在此处实现。 另外需要注意的是,在实际开发过程中可能还会遇到一些边界情况需要特别考虑,比如空值处理等问题。此时可引入额外过滤器如`.filter(Objects::nonNull)`以确保安全性。 #### 关键点解析 - **Stream **:提供了丰富的中间操作与终端操作支持复杂的数据变换需求。 - **Collectors 工具类**:专门用于收集计算的结果到各种容器当中去,这里我们选择了最常用的字符串拼接功能之一——joining。 #### 总结 以上就是关于如何运用Java Streams机制把存储着基本数据类型的列表转化为单个连续字符序列的一个简单实例说明及其背后涉及的技术要点分析。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值