ArrayIndexOutOfBoundsException异常,

时间:2017-04-01 12:30:26

标签: java arrays

我创建了一个整数数组。我试图从原始数组返回一个偶数数组,但它说“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 + ", ");
        }

    }

}

1 个答案:

答案 0 :(得分:0)

在你的代码中,在实例化时,size == 0,所以你的evenArr的最大大小为0.你尝试向数组添加任何值的第二个,你将得到该错误。尝试将其设为myArr.size()

或者更理想的是,使用可以动态调整大小的列表,这样您就不会得到超大数组。