将String[]
转换为Collection<Integer>
的简便方法是什么?这就是我现在正在做的事情,但不确定它是否有用:
String[] myStringNumbers;
Arrays.stream(Arrays.asList(myStringNumbers).stream().mapToInt(Integer::parseInt).toArray()).boxed().collect(
Collectors.toList());
答案 0 :(得分:8)
您不需要制作中间阵列。只需解析和收集(使用静态导入Collectors.toList
):
Arrays.stream(myStringNumbers).map(Integer::parseInt).collect(toList());
答案 1 :(得分:3)
没有必要使用parseInt
,因为它会将结果打包到集合中,正如@Misha所说,您可以使用Arrays.stream
来创建流。所以你可以使用以下内容:
Arrays.stream(myStringNumbers).map(Integer::decode).collect(Collectors.toList());
请注意,此不会执行任何错误处理(如果您不这样做,则数字不应以0
,#
或0x
开头想要惊喜)。如果您只需要10个基数,Integer::valueOf
是更好的选择。
答案 2 :(得分:0)
以下是我的想法:
String[] myStringNumbers = {"1", "2"};
List<Integer> list = Stream.of(myStringNumbers).map(Integer::valueOf).collect(Collectors.toList());
我希望它可以提供一些帮助。 :)