连接两个 int[]

2022-09-01 20:15:06

有简单的解决方案可以将两个连接起来,或者在java中通过.因为经常使用。有没有直接的方法可以连接两个?String[]Integer[]Streamsint[]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[]


答案 1

您可以协同使用,以便在没有任何自动装箱或取消装箱的情况下完成此任务。这是它的外观。IntStream.concatArrays.stream

int[] result = IntStream.concat(Arrays.stream(c), Arrays.stream(d)).toArray();

请注意,返回 一个 ,然后在收集到数组中之前将其与另一个连接起来。Arrays.stream(c)IntStreamIntStream

下面是输出。

[1, 34, 3, 1, 5]


答案 2

您可以简单地连接基元()流,使用:intIntStream.concat

int[] m = IntStream.concat(IntStream.of(c), IntStream.of(d)).toArray();