通过 Streams
在 java 中连接两个 String[]
或 Integer[]
有很简单的解决方案。由于 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]
关于java - 连接两个 int[],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54864223/