我创建了一个整数数组。我试图从原始数组返回一个偶数数组,但它说“ArrayIndexOutOfBoundsException”指向代码“evenArr [size ++] = arry [i];”的这一部分。我知道d数组的大小是5。 谢谢
package practice;
import java.util.*;
class Testt {
int[] myArr = {4, 6, 6, 7, 2};
int size = 0;
int[] evenArr;
Testt() {
this.evenArr = new int[size];
}
public int[] arr(int[] arry) {
for (int i = 0; i < arry.length; i++) {
if (arry[i] % 2 == 0) {
evenArr[size++] = arry[i];
}
}
return evenArr;
}
}
public class ReturnStatement {
public static void main(String[] args) {
Testt t = new Testt();
System.out.println("Size: " + t.myArr.length);
int[] result = t.arr(t.myArr);
for (int i = 0; i < result.length; i++) {
System.out.println(result + ", ");
}
}
}
答案 0 :(得分:0)
在你的代码中,在实例化时,size == 0,所以你的evenArr的最大大小为0.你尝试向数组添加任何值的第二个,你将得到该错误。尝试将其设为myArr.size()
或者更理想的是,使用可以动态调整大小的列表,这样您就不会得到超大数组。