我正在尝试将两个一维数组交织到一个新数组中

时间:2018-09-02 20:18:19

标签: java arrays sorting

我正在尝试采用两个一维数组并将它们交织到一个新数组中。例如

var price = result.response.availableProducts[i].price;
           var priceFinal;
           if(price != null){
                priceFinal = price;
           }else{
                priceFinal = 0;
           }

获取这两个数组并将它们交织在一起

a = (1,2,3) & b = (44,55,66,77,88)

我真诚地相信我已经解决了它,但是我不知道为什么这段代码会输出

c = (1,44,2,55,3,66,77,88)

代码:

c/interleave as 1,44,2,55,66,77,88,0

1 个答案:

答案 0 :(得分:1)

您正在针对b.length检查k,并针对a.length检查j。因此,当k变成3时,您的第二个if将用interleave[i]覆盖b[k]kj应该切换:

if (((i % 2 == 0) || (j >= b.length)) && (j < a.length))
 {                 //^^^ 
    interleave[i] = a[j];
    j++;
 }
 if (((i % 2 == 1) || (k >= a.length)) && (k < b.length))
 {                  //^^^
    interleave[i] = b[k];
    k++;
 }

输出:

[1, 44, 2, 55, 3, 66, 77, 88]