Bas*_*que 3 java arrays merge java-stream
本页展示了如何将两个Integer
对象数组组合成一个Object
对象数组。
Integer[] firstArray = new Integer[] { 10 , 20 , 30 , 40 };
Integer[] secondArray = new Integer[] { 50 , 60 , 70 , 80 };
Object[] merged =
Stream
.of( firstArray , secondArray )
.flatMap( Stream :: of )
.toArray()
;
Run Code Online (Sandbox Code Playgroud)
Arrays.toString( 合并): [10, 20, 30, 40, 50, 60, 70, 80]
? 有没有办法使用 Java 流来连接一对原始int
值数组而不是对象?
int[] a = { 10 , 20 , 30 , 40 };
int[] b = { 50 , 60 , 70 , 80 };
int[] merged = … ?
Run Code Online (Sandbox Code Playgroud)
我意识到使用 Java 流可能不是最有效的方法。但我对原语和 Java 流的相互作用很好奇。
我知道IntStream
但看不到如何将其用于此目的。
IntStream.concat
将每个数组转换为IntStream
. 然后调用IntStream.concat
组合。
最后,int
通过调用生成一个数组IntStream::toArray
。
int[] a = { 10 , 20 , 30 , 40 };
int[] b = { 50 , 60 , 70 , 80 };
int[] merged = IntStream.concat(IntStream.of(a), IntStream.of(b)).toArray();
System.out.println(Arrays.toString(merged));
Run Code Online (Sandbox Code Playgroud)
输出:
[10, 20, 30, 40, 50, 60, 70, 80]
Run Code Online (Sandbox Code Playgroud)
提示:要对结果进行排序,请.sorted()
在.toArray()
. 正如在 IdeOne.com 上看到的那样。