两个数组交叉合并为一个数组

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了两个数组交叉合并为一个数组相关的知识,希望对你有一定的参考价值。

参考技术A 声明一个足够长的数组来支付第一个数组,然后是第二个数组

将两个一维字符串数组合并为一个带分隔符的数组

【中文标题】将两个一维字符串数组合并为一个带分隔符的数组【英文标题】:Merge two one dimensional String arrays to a single array with delimiter 【发布时间】:2021-05-12 01:56:33 【问题描述】:

我有两个数组:

a = ["a","b","c"]

b = ["d","e","f"]

如何将它们合并到一个数组中,如下所示:

c = ["a=d", "b=e", "c=f"]

使用等号 (=) 作为合并字符串之间的分隔符?

【问题讨论】:

这个问题正在meta讨论。 重复错误,因为ArrayListarray 不同 技术是一样的,iterate,concat,add。 不。 ArrayList 有内置的 .addAll 方法可以这样做,不需要迭代。 addAll 不相关,因为您需要添加自定义分隔符。 Aniway 这个问题不够具体:我们要如何处理数组的大小差异? Not using for loop,我们是否也排除了 while 循环?转到?为什么我们首先要排除类似的 for 循环?此外,所选答案不符合“没有 for 循环”的标准。如果这是一个家庭作业问题,那么课程的主题是什么?流? 【参考方案1】:

你可以在循环的帮助下做到这一点,例如

import java.util.Arrays;

public class Main 
    public static void main(String[] args) 
        String[] a =  "a", "b", "c" ;
        String[] b =  "d", "e", "f" ;
        String[] result = new String[a.length];
        for (int i = 0; i < Math.min(a.length, b.length); i++) 
            result[i] = a[i] + "=" + b[i];
        

        System.out.println(Arrays.toString(result));
    

输出:

[a=d, b=e, c=f]

通过this tutorial from Oracle了解更多关于循环的信息。

使用IntStream

import java.util.Arrays;
import java.util.stream.IntStream;

public class Main 
    public static void main(String[] args) 
        String[] a =  "a", "b", "c" ;
        String[] b =  "d", "e", "f" ;
        String[] result = IntStream
                            .range(0, Math.min(a.length, b.length))
                            .mapToObj(i -> a[i] + "=" + b[i])
                            .toArray(String[]::new);
        
        System.out.println(Arrays.toString(result));
    

【讨论】:

以上是关于两个数组交叉合并为一个数组的主要内容,如果未能解决你的问题,请参考以下文章

Matlab两个一维数组合并为一个数组?

php交叉合并数组

python 中两个数组如何合并为一个数组。

将两个 json/javascript 数组合并为一个数组

[leetcode]4寻找两个有序数组的中位数

将两个json数组合并为一个