有人告诉我做
void mergeArrays(int[] ar1 , int[] ar2)
对于这样的输入:
int[] ar1 = {1,2,3,4}
int[] ar2 = {5,6,7,8}
这是我的代码:
public static void mergeArray(int[] ar1 , int[] ar2) {
int[] res = new int[ar1.length+ar2.length];
int counter = 0;
for(int a = 0; a<ar1.length; a++)
{
res[a] = ar1[a];
counter++;
}
for(int b = 0; b<ar2.length; b++)
{
res[counter++] = ar2[b];
}
for(int temp = 0; temp<res.length;temp++)
{
System.out.print(res[temp]+" ");
}
输出12345678
。
这是使用2个循环完成的。现在,我如何使用一个循环来做到这一点?
答案 0 :(得分:4)
是的,您可以一次循环完成
int len = arr1.length + arr2.length;
int[] res = new int[len];
for(int i=0, j=0; i<len; i++) {
if(i<arr1.length){
res[i] = arr1[i];
}else{
res[i] = arr2[j];
j++;
}
}
当两个数组的长度不同时,这也将起作用。
答案 1 :(得分:1)