问题
我正在初始化这样的数组数据:
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;
}
}
}