字符串数组到Integer的集合?

时间:2016-04-15 07:57:33

标签: java arrays java-8

String[]转换为Collection<Integer>的简便方法是什么?这就是我现在正在做的事情,但不确定它是否有用:

String[] myStringNumbers;

Arrays.stream(Arrays.asList(myStringNumbers).stream().mapToInt(Integer::parseInt).toArray()).boxed().collect(
                    Collectors.toList());

3 个答案:

答案 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());

我希望它可以提供一些帮助。 :)