任何人都可以尝试解决这个问题,因为我正在
ArrayIndexOutOfBoundsException异常
当试图从3中减去最后一个元素时,如果结果不存在,那么它应该返回结果的下一个元素。
public static int[] returnNum(){
int[] numbers = {1,2,4,6,8,10};
int[] num = {};
for(int i = numbers.length-1; i > 0; i--){
if(numbers[i]-3 == numbers[i-1]){
num[numbers.length-1-i] = numbers[i-1];
}else{
num[numbers.length-1-i] = numbers[i-1];
}
}
return num;
}
public static void main(String[] args) {
System.out.println(Test.returnNum());
}
答案 0 :(得分:3)
您的数组“num”被初始化为一个大小为0的空数组(“{}”)。
尝试在if的任何位置的else分支中访问它将抛出IndexOutOfBound。
else{
num[numbers.length-1-i] = numbers[i-1];
}
(注意:对于if的主分支也是如此,只是在给定静态初始化示例的情况下,它从未达到过。)
初始化数组后,您无法动态添加数据。如果这是您的用例,您应该查看List data structure
答案 1 :(得分:0)
num
的{{1}} length
。请使用0