连接两个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]