2010-10-02 29 views
0

我有這樣的代碼:的Java:改變的String [] []動態

newArray = new String[][]{{"Me","123"},{"You","321"},{"He","221"}}; 

而且我要動態地做到這一點。 添加更多元素,就像它。

我該怎麼做? PS:不使用Vector,只使用String[][];不使用Vector,只使用String[][];不使用Vector,只使用String[][];不使用Vector,僅使用String[][];

+0

在我看來,發佈這個人的人必須已經開始用Python中動態數組構建的語言編程。 Tangens的回答是完美的。有很多許多類型的集合允許動態修改。 – 2010-10-02 18:25:09

+0

我會推薦他學習更多關於泛型的知識,也許。如果我從Python到java(而不是反過來),仿製藥開始看起來很奇怪。 – krs1 2010-10-02 18:36:38

回答

8

您不能更改數組的大小。您必須創建一個新陣列並將舊陣列中的所有內容複製到新陣列。

這就是爲什麼它更容易使用Java集合類,如ArrayListHashSet,...

0

您不能更改數組的大小。我覺得你有一些選擇:

  1. 使用List<List<String>>存儲字符串列表的列表
  2. 使用Map<String,String>如果你存儲鍵/值對

Vector往往不會這些日子,順便說一句。每個方法調用都會同步一個Vector,因此性能會受到影響(現代虛擬機的性能可以忽略不計)

0

Java沒有像其他語言一樣調整數組大小的功能。


你不會看到一個String數組和ArrayList<String>javadoc)之間的區別,除非你被特別要求這樣做(像功課)

有很多方法,你可以聲明一個巨大的陣所以你不要空間不足但我強烈建議ArrayList如果您需要動態更改大小。作爲獎勵,ArrayList提供了一些不可能(直接)使用數組的可能性。

0

如果可以在使用數組之前計算數組的大小,您可以使用數組脫身。在你的例子中,我們似乎只需要知道第一個數組的大小。因此,您可以對保存多少條記錄施加限制,或者您可以查詢用戶以瞭解需要保存多少條記錄或類似的內容。

但是,使用Collections更容易。