gpt4 book ai didi

java - 如何在 Java 中混合两个数组?

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:48:06 25 4
gpt4 key购买 nike

我有一些 String[] 数组,例如:

['a1', 'a2']
['b1', 'b2', 'b3', 'b4']
['c1']

我如何混合它们,以便我得到 ['a1', 'b1', 'c1', 'a2', 'b2', 'b3', 'b4'] ( a 的 0 个元素,然后是 b、c,a、b、c 的 1 个元素等等)?谢谢

更准确地说,结果数组必须包含第一个数组的第一个值,然后是第二个数组的第一个值,...,最后一个数组的第一个值,第一个数组的第二个值,.. ., 最后一个数组的第二个值, ..., 最大数组的最后一个值。如果数组的大小不同,则不会考虑较小的数组。

这是一个例子:

a1 a2 a3 a4
b1 b2 b3 b4 b5 b6 b7
c1 c2
d1 d2 d3 d4 d5

Combines into (brackets are just to highlight steps, so they really mean nothing):
(a1 b1 c1 d1) (a2 b2 c2 d2) (a3 b3 d3) (a4 b4 d4) (b5 d5) (b6) (b7)

此外,我想组合可变数量的数组,而不仅仅是 3 或 4

最佳答案

String result[] = new String[a.length+b.length+c.length];
for (int i = 0, j = 0; j < result.length; ++i) {
if (i < a.length) {
result[j++] = a[i];
}
if (i < b.length) {
result[j++] = b[i];
}
if (i < c.length) {
result[j++] = c[i];
}
}

更新:更普遍

String[] merge(String[]... arrays) {
int length = 0;
for (String[] a: arrays) {
length += a.length;
}
String result[] = new String[length];
for (int i = 0, j = 0; j < length; ++i) {
for (String[] a: arrays) {
if (i < a.length) {
result[j++] = a[i];
}
}
}
return result;
}

关于java - 如何在 Java 中混合两个数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2682053/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com