java - 使用Java流合并一对 `int`数组

标签 java arrays merge java-stream

这个问题在这里已经有了答案:





Concatenating two int[]

(3 个回答)



Combine two integer arrays [duplicate]

(9 个回答)


2年前关闭。




This page显示如何组合 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()
;

Arrays.toString( merged ): [10, 20, 30, 40, 50, 60, 70, 80]



➥ 有没有办法使用 Java 流连接一对原始数组 int值(value)而不是对象?
int[] a = { 10 , 20 , 30 , 40 };
int[] b = { 50 , 60 , 70 , 80 };
int[] merged = … ?

我意识到使用 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));

看到这个code run live at IdeOne.com .

输出:
[10, 20, 30, 40, 50, 60, 70, 80]

提示:要对结果进行排序,请调用 .sorted() .toArray() 之前.如所见running on IdeOne.com .

关于java - 使用Java流合并一对 `int`数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61297074/

相关文章:

java - 如何仅在字符串中的特定位置替换重复的字符?

java - Java 6 是否支持 VB?

javascript - 如果包含关键字,则获取数组值

python - 仅当 Pandas 中的值为空/空时才合并

merge - 如何合并两个表并覆盖两个表中的元素?

linux - 合并、排序、维护行序

java - OpenJFX 对 32 位系统的支持

java - 从子类获取父类

arrays - 获取数据到 TableView

c - 指数限制为指数减去