我正在初始化一个数组,如下所示:
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};
我该如何解决这个问题?
发布于 2009-12-21 12:04:35
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。
发布于 2009-12-21 12:01:20
试一试
data = new int[] {10,20,30,40,50,60,71,80,90,91 };
发布于 2009-12-21 13:03:52
当您创建一个大小为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;
}
}
}
https://stackoverflow.com/questions/1938101
复制相似问题