Java中出现此ArrayIndexOutOfBoundsException的原因是什么?
当我运行此函数时,Java抛出一个Java中出现此ArrayIndexOutOfBoundsException的原因是什么?,java,arrays,Java,Arrays,当我运行此函数时,Java抛出一个ArrayIndexOutOfBoundsException错误: public int[] copySecondSlice(int[] array) { int[] newArray = new int[array.length/2]; for (int i = array.length/2; i < array.length; i++) { assert i == 1; newArray[i] = arr
ArrayIndexOutOfBoundsException
错误:
public int[] copySecondSlice(int[] array) {
int[] newArray = new int[array.length/2];
for (int i = array.length/2; i < array.length; i++) {
assert i == 1;
newArray[i] = array[i];
}
return newArray;
}
public int[]copySecondSlice(int[]数组){
int[]newArray=newint[array.length/2];
for(int i=array.length/2;i
我尝试了多个资源来检查I是否优于0,是否低于数组的长度,但没有任何效果。有人能帮我理解我的错误吗?仅仅是因为您试图达到超出新数组范围的索引 看 这里您声明newArray的长度为array.length/2 及
嗯,
i
将达到array.length-1
,但是newArray
只有array.length/2
元素,因此newArray[i]
最终将失败。当然。谢谢newArray
索引应该从零开始,而不是从i
开始。类似于(intj=0,i=array.lenght/2;i{newArray[j]=array[i];}
。
int[] newArray = new int[array.length/2];
for (int i = array.length/2; **i < array.length**; i++) {
newArray[**i**] = array[i];
for (int j=0, i = array.lenght/2; i < array.length; i++, j++) {
...
newArray[j] = array[i];