用另一个数组中的整数替换数组中的整数
Replacing integers in an array with Integers from another array
我正在努力解决这个问题,我必须从一个数组中取出 (i/2)+1 个数字,然后将它们插入到第二个数组的后面。
例如第一个数组 = {2, 5, 3, 4, 8, 9}
第二个数组 = {-1, -1, -1, -1, -1, -1, -1}
what i want to achieve = {-1, -1, -1, 4, 3, 5, 2}
所以我想把第一个数组中的第一个数字插入到第二个数组的最后一个位置替换-1等等
我目前拥有的是:
for(int i = 2nd Array.length; i <2nd Array.length; i--){
int value = 1st Array[i];
2nd Array[i]= 2nd Array[i].replace(i, value);
}
目前我只是想让它向数组中插入一组值。
我没有尝试只从数组中获取 (1st Array.length/2)+1 个数字。
有人能给我一些建议吗?
我认为您的 "for" 循环有问题。
for(int i = 2nd Array.length; i <2nd Array.length; i--)
会退出循环,因为"i"从第2个Array.length开始,不会小于第2个Array.length。
要从数组中间开始,i的初始值应该设置为(length/2 + 1),因为数组索引是从0开始的,所以可以用array2.length/2
for(int i = array2.length/2; i < array2.length; i++)
array1[i] = array2[i];
为清楚起见,每个数组使用一个索引,i1
索引用于 array1
,i2
用于 array2
。
假设两个数组都已经初始化:
int i2 = array2.length-1;
for (int i1 = 0; i1 < (array1.length/2+1) && i2 >=0 ; i1++) {
array2[i2] = array1[i1];
i2--;
}
或者您可以将所有内容都放在 for
:
int[] array1 = {1,2,3,4,5,6,7,8,9};
int[] array2 = {-1,-1,-1,-1,-1,-1,-1,-1,-1};
for (int i1 = 0, i2 = array2.length-1;
i1 < (array1.length/2+1) && i2 >=0 ;
i1++, i2--) {
array2[i2] = array1[i1];
}
System.out.println(Arrays.toString(array2));
输出:
[-1, -1, -1, -1, 5, 4, 3, 2, 1]
编辑
如果你想要其他方式,只需更改索引 i1
的方向,例如
for (int i1 = array1.length/2+1, i2 = array2.length-1;
i1 >= 0 && i2 >=0 ;
i1--, i2--) {
array2[i2] = array1[i1];
}
System.out.println(Arrays.toString(array2));
输出:
[-1, -1, -1, 1, 2, 3, 4, 5, 6]
我正在努力解决这个问题,我必须从一个数组中取出 (i/2)+1 个数字,然后将它们插入到第二个数组的后面。
例如第一个数组 = {2, 5, 3, 4, 8, 9} 第二个数组 = {-1, -1, -1, -1, -1, -1, -1}
what i want to achieve = {-1, -1, -1, 4, 3, 5, 2}
所以我想把第一个数组中的第一个数字插入到第二个数组的最后一个位置替换-1等等
我目前拥有的是:
for(int i = 2nd Array.length; i <2nd Array.length; i--){
int value = 1st Array[i];
2nd Array[i]= 2nd Array[i].replace(i, value);
}
目前我只是想让它向数组中插入一组值。 我没有尝试只从数组中获取 (1st Array.length/2)+1 个数字。
有人能给我一些建议吗?
我认为您的 "for" 循环有问题。
for(int i = 2nd Array.length; i <2nd Array.length; i--)
会退出循环,因为"i"从第2个Array.length开始,不会小于第2个Array.length。
要从数组中间开始,i的初始值应该设置为(length/2 + 1),因为数组索引是从0开始的,所以可以用array2.length/2
for(int i = array2.length/2; i < array2.length; i++)
array1[i] = array2[i];
为清楚起见,每个数组使用一个索引,i1
索引用于 array1
,i2
用于 array2
。
假设两个数组都已经初始化:
int i2 = array2.length-1;
for (int i1 = 0; i1 < (array1.length/2+1) && i2 >=0 ; i1++) {
array2[i2] = array1[i1];
i2--;
}
或者您可以将所有内容都放在 for
:
int[] array1 = {1,2,3,4,5,6,7,8,9};
int[] array2 = {-1,-1,-1,-1,-1,-1,-1,-1,-1};
for (int i1 = 0, i2 = array2.length-1;
i1 < (array1.length/2+1) && i2 >=0 ;
i1++, i2--) {
array2[i2] = array1[i1];
}
System.out.println(Arrays.toString(array2));
输出:
[-1, -1, -1, -1, 5, 4, 3, 2, 1]
编辑
如果你想要其他方式,只需更改索引 i1
的方向,例如
for (int i1 = array1.length/2+1, i2 = array2.length-1;
i1 >= 0 && i2 >=0 ;
i1--, i2--) {
array2[i2] = array1[i1];
}
System.out.println(Arrays.toString(array2));
输出:
[-1, -1, -1, 1, 2, 3, 4, 5, 6]