如何结合两个阵列和把它们按照奇数顺序排列?

时间:2018-01-12 14:07:35

标签: java arrays

我有一个相同大小的int[] aint[] b,我试图将它们放入新数组int[] cc中,奇数索引处的元素将是a的元素甚至元素都是b。这是迄今为止我所做的事情。

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

以下是我问的一个示例:给定a:[0,1,2,3], b:[4,5,6,7],返回[0,4,1,5,2,6,3,7]

如何按偶数顺序排列?我到处搜索但找不到线索。

3 个答案:

答案 0 :(得分:1)

尝试使用0

创建一个int变量
j = 0;

您可以制作像

这样的for循环
for(i = 0; i < a.length; i++) 

然后你就像

那样做
c[j] = b[i];
j++;
c[j] = a[i];
j++;

因为你说两个数组的大小相同,所以不应该遇到大小错误。

答案 1 :(得分:0)

试试这个

int[] c = new int[a.length+b.length];

        for(int i=0 ; i<c.length ; i++){

            if(i%2==0) c[i]=b[i/2];

            else c[i]=a[(i-1)/2];

        }

答案 2 :(得分:0)

如果有时a和b的大小不同,哟可能会做这样的事情。丢失的元素总是为0。

public static void main(String[] args) {
   int[] a = {1,2,3,4};
   int[] b = {5,6,7,8,9};
   int[] c = new int[Math.max(a.length,b.length)*2];

   for(int i=0; i<c.length; i++){
       if(i%2==0 && i/2 < a.length){
           c[i]=a[i/2];
       }
       if(i%2==1 && i/2 < b.length){
           c[i]=b[i/2];
       }           
   }
    System.out.println(Arrays.toString(c));
} 
//[1, 5, 2, 6, 3, 7, 4, 8, 0, 9]