我正在初始化這樣的數組: 數組
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在此行指出一個錯誤: spa
data[10] = {10,20,30,40,50,60,71,80,90,91};
我該如何解決這個問題? code
嘗試data = new int[] {10,20,30,40,50,60,71,80,90,91 };
索引
您正在嘗試將數組的第10個元素設置爲try get
data = new int[] {10,20,30,40,50,60,71,80,90,91};
FTFY it
data[10] = {10,20,30,40,50,60,71,80,90,91};
上面的信息不正確(語法錯誤)。 這意味着您正在爲只能分配一個元素的data[10]
分配一個數組。 io
若是要初始化數組,請嘗試使用Array Initializer : for循環
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
。 class
即便您糾正了語法,訪問data[10]
仍然是錯誤的(您只能訪問data[0]
到data[9]
由於Java中數組的索引是基於0的)。 訪問data[10]
將拋出ArrayIndexOutOfBoundsException 。 變量
您不能像這樣初始化數組。 除了其餘人的建議,您還能夠:
data[0] = 10; data[1] = 20; ... data[9] = 91;
當建立大小爲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; } } }