Arrays 用相邻元素连接两个数组

Arrays 用相邻元素连接两个数组,arrays,join,Arrays,Join,我有两个不同大小的整数数组。 我还有第三个整数数组。 我想从前两个数组中提取每个元素,并将它们逐个存储在新数组中 这是我的密码 int[] a = { 1, 2, 3 }; int[] b = { 5, 6, 7, 8 }; int[] c = new int[100]; int i = 0, j = 0, k, m; for (k = 0; k < a.Length + b.Length; k=k+2) { while (i < a.Length) {

我有两个不同大小的整数数组。 我还有第三个整数数组。 我想从前两个数组中提取每个元素,并将它们逐个存储在新数组中

这是我的密码

int[] a = { 1, 2, 3 };
int[] b = { 5, 6, 7, 8 };
int[] c = new int[100];
int i = 0, j = 0, k, m;
for (k = 0; k < a.Length + b.Length; k=k+2)
{
    while (i < a.Length)
    {
        c[k] = a[i];
        i = i + 1;
        break;
    }
    while (j < b.Length)
    {
        c[k + 1] = b[j];
        j = j + 1;
        break;
    }
}
for (m = 0; m <= a.Length + b.Length; m++)
{
    Console.Write(c[m] + " ");
}
现在,此代码不会产生所需的输出。倒数第二个元素变为0,因为此时第一个数组结束

我想要的输出是{1,5,2,6,3,7,8}
虽然我得到了{1,5,2,6,3,7,0,8}

您实际上不需要嵌套循环,但此算法可能更为优化: 决定哪一个较短,在其上循环,并复制较短和较长数组的值。然后再看长一点的其余部分

如果a和b很重要,那么使用它们的最小长度而不是数组

int[] a = { 1, 2, 3 };
int[] b = { 5, 6, 7, 8 };
int[] c = new int[a.length + b.length];
int[] shorter = a.length < b.length ? a : b;
int[] longer = a.length < b.length ? b : a;
for (int i = 0; i < shorter.length; i++) {
  c[2*i] = shorter[i];
  c[2*i+1] = longer[i];
}
for (int i = shorter.length; i < longer.length; i++) {
  c[shorter.length+i] = longer[i];
}

 for (int m = 0; m < c.length; m++)
 {
     System.out.println(c[m] + " ");
 }

谢谢,程序正在运行并提供所需的输出,但是有一个小问题,如果a[]的大小大于b[],那么c[]将首先获取b[]数组的元素。i、 e.如果a[]={1,2,3,4,5}和b[]={5,6,7},输出显示c[]={5,1,6,2,7,3,4,5},而我想要{1,5,2,6,3,7,4,5}@halflife272是的,是的,这就是为什么我告诉你使用索引而不是重命名数组。好啊