什么是将String[]
转换为Collection<Integer>
的简单方法?这是我现在正在做的事情,但不知道它是否好:字符串数组到整数的集合?
String[] myStringNumbers;
Arrays.stream(Arrays.asList(myStringNumbers).stream().mapToInt(Integer::parseInt).toArray()).boxed().collect(
Collectors.toList());
什么是将String[]
转换为Collection<Integer>
的简单方法?这是我现在正在做的事情,但不知道它是否好:字符串数组到整数的集合?
String[] myStringNumbers;
Arrays.stream(Arrays.asList(myStringNumbers).stream().mapToInt(Integer::parseInt).toArray()).boxed().collect(
Collectors.toList());
您不需要制作中间数组。只是分析和收集(与Collectors.toList
静态导入):
Arrays.stream(myStringNumbers).map(Integer::parseInt).collect(toList());
它不需要使用parseInt
,因为它会在结果框中收集,并作为@Misha说你可以使用Arrays.stream
创建流。所以,你可以使用以下命令:
Arrays.stream(myStringNumbers).map(Integer::decode).collect(Collectors.toList());
请注意,这不做任何错误处理(并且如果你不想惊喜的数字不应与0
,#
或0x
开始)。如果你只需要10个数字,Integer::valueOf
是更好的选择。
以下是我认为:
String[] myStringNumbers = {"1", "2"};
List<Integer> list = Stream.of(myStringNumbers).map(Integer::valueOf).collect(Collectors.toList());
我希望它可以提供一些帮助。 :)
无论在哪种情况下,int值都被装箱,所以无论使用'valueOf'还是'parseInt'都没有区别。推荐使用不同的方法,比如'decode',然后警告由于这种方法有不同的目的而导致的意外,这是很奇怪的。 – Holger