我正在努力解决这个问题,我必须从一个数组中取出(i / 2)+1个数字,然后将它们插入到第二个数组的后面。
e.g。第一阵列= {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个数字。
有人可以就如何做到这一点给我一些建议吗?
答案 0 :(得分:0)
我认为你的&#34; for&#34;环。
for(int i = 2nd Array.length; i <2nd Array.length; i--)
它将退出循环因为&#34; i&#34;从第二个Array.length开始,它不会小于第二个Array.length。
答案 1 :(得分:0)
要从数组中间开始,你应该将i的初始值设置为(length / 2 + 1),因为数组索引从0开始,你可以使用array2.length / 2
for(int i = array2.length/2; i < array2.length; i++)
array1[i] = array2[i];
答案 2 :(得分:0)
为清楚起见,为每个数组使用一个索引,为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]