2012-12-31 68 views
55

可能重複:
how to add new elements to a String[] array?添加字符串,字符串數組

我在Java中新的,所以我需要一些幫助

String [] scripts = new String [] ("test3","test4","test5"); 

和我想添加新的條款爲例子

String string1= " test1" 
String string2 = "test2" 

我要添加新的字符串不是在init但在以後的階段

我該怎麼辦呢GS(字符串1,字符串)該陣列(腳本)?

+2

您可以用'List'(如'ArrayList')?或者你可以創建一個更大尺寸的新數組,然後在索引= 2的舊數組中添加循環。然後在索引'0'和'1'處添加新元素。 – Nishant

+1

所以你不是新手,所以在發佈問題之前先做一些搜索以避免downvote。 – vels4j

+0

如果需要動態修改元素,請轉至java.util.Collections。映射需求和可用的集合類型。如上所述,正如所有的建議,'ArrayList'是最好的。 – VinayVeluri

回答

87

你不能在java中調整數組大小。

一旦聲明瞭數組的大小,它仍然是固定的。

相反,您可以使用具有動態大小的ArrayList,這意味着您無需擔心其大小。如果你的數組列表不夠大以容納新值,那麼它將自動調整大小。

ArrayList<String> ar = new ArrayList<String>(); 
String s1 ="Test1"; 
String s2 ="Test2"; 
String s3 ="Test3"; 
ar.add(s1); 
ar.add(s2); 
ar.add(s3); 

String s4 ="Test4"; 
ar.add(s4); 
+0

請確保同時導入java.util.ArrayList – wizlog

12

首先,這裏的代碼,

string [] scripts = new String [] ("test3","test4","test5"); 

應該

String[] scripts = new String [] {"test3","test4","test5"}; 

請閱讀本教程Arrays

其次,

陣列固定SIZ e,所以你不能在上面的數組中添加新的字符串。你可以覆蓋現有值

scripts[0] = string1; 

(或)

創建與大小的數組,然後繼續添加元素,直到它已滿。

如果您想要可調整大小的陣列,請考慮使用ArrayList

6

你將不得不寫了一些方法來創建一個臨時數組,然後複製它像

public String[] increaseArray(String[] theArray, int increaseBy) 
{ 
    int i = theArray.length; 
    int n = ++i; 
    String[] newArray = new String[n]; 
    for(int cnt=0;cnt<theArray.length;cnt++) 
    { 
     newArray[cnt] = theArray[cnt]; 
    } 
    return newArray; 
} 

或將的ArrayList將有助於解決您的問題。

+1

+1好。也可以使用System.arrayCopy – vels4j

+0

您可以使用Arrays.copyOf()來實現相同。 –

2

由於Java數組擁有固定數量的值,所以在這種情況下,您需要創建一個長度爲5的新數組。一個更好的解決方案是使用一個ArrayList和簡單地字符串到陣列。

實施例:

ArrayList<String> scripts = new ArrayList<String>(); 
scripts.add("test3"); 
scripts.add("test4"); 
scripts.add("test5"); 

// Then later you can add more Strings to the ArrayList 
scripts.add("test1"); 
scripts.add("test2"); 
6

由於許多答案提示更好的解決方案之一是使用ArrayList。 ArrayList大小不固定,易於管理。

它是List接口的可調整大小的實現。實現所有可選的列表操作,並允許所有元素,包括null。除了實現List接口之外,該類還提供了一些方法來控制用於內部存儲列表的數組大小。

每個ArrayList實例都有一個容量。容量是用於存儲列表中元素的數組大小。它總是至少與列表大小一樣大。隨着元素被添加到ArrayList,其容量會自動增長。

請注意,此實現不同步。

ArrayList<String> scripts = new ArrayList<String>(); 
scripts.add("test1"); 
scripts.add("test2"); 
scripts.add("test3");