连接两个int []
问题内容:
有简单的解决方案,可通过串联两个String[]
或Integer[]
java
Streams
。由于int[]
是经常使用的。是否有任何简单的方法来连接两个int[]
?
这是我的想法:
int[] c = {1, 34};
int[] d = {3, 1, 5};
Integer[] cc = IntStream.of(c).boxed().toArray(Integer[]::new);
Integer[] dd = Arrays.stream(d).boxed().toArray(Integer[]::new);
int[] m = Stream.concat(Stream.of(cc), Stream.of(dd)).mapToInt(Integer::intValue).toArray();
System.out.println(Arrays.toString(m));
>>
[1, 34, 3, 1, 5]
它可以工作,但实际上可以转换int[]
为Integer[]
,然后再次转换Integer[]
回int[]
。
问题答案:
您可以使用IntStream.concat
协力Arrays.stream
让这件事没有任何自动装箱拆箱或完成。这是它的外观。
int[] result = IntStream.concat(Arrays.stream(c), Arrays.stream(d)).toArray();
请注意,Arrays.stream(c)
返回IntStream
,然后将其与另一个串联,然后IntStream
再收集到数组中。
这是输出。
[1、34、3、1、5]