Sim*_* Z. 24 java arrays lambda java-8 java-stream
有简单的解决方案可以连接两个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]
Run Code Online (Sandbox Code Playgroud)
它可以工作,但它实际上转换int[]为Integer[],然后再转换Integer[]回来int[].
Rav*_*ala 27
您可以一起使用IntStream.concat,Arrays.stream无需任何自动装箱或拆箱即可完成此操作.这是它的外观.
int[] result = IntStream.concat(Arrays.stream(c), Arrays.stream(d)).toArray();
Run Code Online (Sandbox Code Playgroud)
请注意,Arrays.stream(c)返回an IntStream,然后IntStream在收集到数组之前与另一个连接.
这是输出.
[1,34,3,1,5]
Nam*_*man 19
您可以int使用IntStream.concatas 简单地连接primitive()流:
int[] m = IntStream.concat(IntStream.of(c), IntStream.of(d)).toArray();
Run Code Online (Sandbox Code Playgroud)