java - 将字符串数组转换为整数列表?
问题描述
这不是一个重复的问题,因为我特别要求将字符串数组转换为整数列表。换句话说,同时转换不同类型的列表和不同的对象类型。
import java.util.*;
import java.util.stream.Collectors;
String[] allAnswers = {"2", "4", "1"}
int[] allAnswersInts = Arrays.stream(allAnswers).mapToInt(Integer::parseInt).toArray();
List<Integer> allAnswerList = Arrays.stream(allAnswersInts).boxed().collect(Collectors.toList());
有没有更快或更实用的方法来做到这一点?
解决方案
您只需要流式传输一次。
而不是 using int Integer::parseInt(String s)
,您应该使用Integer Integer::valueOf(String s)
,因此您不必调用boxed()
或依赖自动装箱。
然后collect(Collectors.toList())
直接使用,而不是先创建中间数组。
List<Integer> allAnswerList = Arrays.stream(allAnswers) // stream of String
.map(Integer::valueOf) // stream of Integer
.collect(Collectors.toList());
推荐阅读
- docker - 如何知道 httpd:latest image of apache 中使用了哪个基本操作系统
- python - 如何从两个相似的图像中提取噪声?
- ios - Yarn v2 和 Cocopods:node_modules 文件夹不存在
- android - 同一文件的不同 Uri
- mysql - MySQL 不允许写入文件系统
- c# - 如何将 PrivateKeyCiphertextBlob 或 PrivateKeyPlaintext 转换为字符串?
- assembly - “自修改链接”在 Pegasus 编程中是如何工作的?
- react-native - 反应导航 v 2x 将默认参数设置到屏幕中
- ios - 使用打开按钮从试飞中打开应用程序时在启动时崩溃
- matlab - 如何在 MATLAB 中使用点生成圆顶