问题

我正在初始化这样的数组数据:

public class Array {

    int data[] = new int[10]; 
    /**Creates a new instance of Array */
    public Array() {
        data[10] = {10,20,30,40,50,60,71,80,90,91};
    }

}

NetBeans指向该行的错误

data[10] = {10,20,30,40,50,60,71,80,90,91};

我该如何解决这个问题?


#1 热门回答(473 赞)

data[10] = {10,20,30,40,50,60,71,80,90,91};

以上不正确(语法错误)。这意味着你要将一个数组分配给data[10],它只能容纳一个元素。

如果要初始化数组,请尝试使用Array Initializer

int[] data = {10,20,30,40,50,60,71,80,90,91};

// or

int[] data;
data = new int[] {10,20,30,40,50,60,71,80,90,91};

注意两个声明之间的区别。将新数组分配给声明的变量时,必须使用new

即使你更正了语法,访问data[10]仍然不正确(你只能访问data[0]data[9],因为Java中的数组索引是基于0的)。访问data[10]将抛出ArrayIndexOutOfBoundsException


#2 热门回答(27 赞)

Trydata = new int[] {10,20,30,40,50,60,71,80,90,91 };


#3 热门回答(19 赞)

当你创建一个大小为10的数组时,它分配了10个插槽但是从0到9。这个for循环可能会帮助你看到更好一点。

public class Array {
    int[] data = new int[10]; 
    /**Creates a new instance of an int Array */
    public Array() {
        for(int i = 0; i < data.length; i++) {
            data[i] = i*10;
        }
    }
}

原文链接