两个数组交叉合并为一个数组
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讨论。 重复错误,因为ArrayList
与array
不同
技术是一样的,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));
【讨论】:
以上是关于两个数组交叉合并为一个数组的主要内容,如果未能解决你的问题,请参考以下文章