2012-02-02 24 views
0

我怎樣才能將值添加到2維動態數組?爲java添加值2維動態數組

String emp[][] = { 
{"001","Superman","Manda","123-1233","02-14-1970","Male","Manager","20,000","Regular"}, 
{"002","Batman","Manda","33-1233","07-14-2007","Male","Clerk","20,000","Regular"}, 
}; 

我試試這個代碼

int arrLen = emp.lenght; 
emp[arrLen][0] = "003" 
emp[arrLen][1] = "Superwoman" 
emp[arrLen][2] = "QC" 
emp[arrLen][3] = "123-1233" 
emp[arrLen][4] = "03-12-2012" 
emp[arrLen][5] = "Female" 
emp[arrLen][6] = "Supervisor" 
emp[arrLen][7] = "10,000" 
emp[arrLen][8] = "Regular" 

但它不工作

誰能幫助我?

感謝

回答

0

Java數組具有固定長度。如果你想要可調整大小的陣列,使用ArrayList

實施例:

ArrayList<String[]> list = new ArrayList<String[]>(); 
list.add(new String[]{"Superman","Manda","..."}); 
list.add(new String[]{"Superwoman","Manda","..."}); 
+0

是否有2D ArrayList? – user1033600 2012-02-02 18:34:09

+0

沒有,但是你可以使用ArrayList > - 你可以在不需要嵌套類型的情況下進行嵌套 – 2012-02-02 18:35:48

+0

不,但是如果列的數量是固定的,你可以使用數組的ArrayList:'ArrayList '。 – 2012-02-02 18:36:56

4

不能添加到一個數組 - 創建後,大小是固定的。您應該考慮使用List<E>實現,例如ArrayList ......理想情況下創建了一個類型來封裝這些信息,而不僅僅是一串字符串。它看起來像你有日期,名稱,數值等在那裏 - 爲什麼不使用該信息?

例如:

List<Person> people = new ArrayList<Person>(); 
people.add(new Person(1, "Superman", "Manda", new TelephoneNumber("123-1233"), 
      new LocalDate(1970, 14, 2), Gender.MALE, 
      "Manager", 20000, SalaryType.REGULAR); 
0

你有一個錯字

lenght 

此外,報表已經

; 

最後結束,您的實際問題是什麼:長度一個數組在創建時被固定;數組[array.length]將始終指向數組外部。

0

的array.length返回一個數比索引更高1。

0

數組對象的大小是固定的。您可以分配一個新的,更大的String[][]對象,並在將其移到子陣 - 即

String[][] tmp = new String[emp.length + 1][]; 
for (int i=0; i<emp.length; ++i) 
    tmp[i] = emp[i]; 
emp = tmp; 

在此之後,有一個在你的主數組的最後一個空白點。用它填滿

emp[emp.length-1] = new String[] {"003", ...}; 
0

你現在的代碼有兩個大問題。

1)數組不是動態的,並且具有固定的大小。您應該使用ArrayLists數據結構,您可以在其中添加值。

2)你的array.Length返回一些長度爲n,但你的數組索引從0到(n-1)。因此,引用這個長度會給你一個索引超出界限的例外。