2014-01-20 35 views
1

我有一個包含將顯示城市名稱的小代碼。 現在想讓用戶可以用掃描儀添加名字,我知道sanner的代碼,但不知道如何添加變量。Java將變量添加到字符串數組

代碼,我有:

String[] cityNames = { "Tiel", "Culemborg", "Houten", "Geldermalsen", "Meteren", "Buren" }; 
System.out.println(Arrays.toString(cityNames)); 
+4

使用'List '或'Set ' –

+0

您不能將變量添加到數組。它的大小一旦創建就被固定。 – Maroun

回答

3

不,你不能用數組做,因爲大小是固定的,一旦宣佈。

您可能正在尋找集合。傾向於使用List接口與ArrayList實現。

的原因是,ArrayList

List接口的大小可變數組實現。

List<String> cityNames = new ArrayList<>(); 

現在,你有你的cityNamesList

1

您可以使用List<String>方法,如add, remove,...還有更多有用的方法,得到的輸入值,並將其添加:

List<String> cities = new ArrayList<>(); 
cities.add(userInput); 

列表最好使用比數組更好的長度,因爲它的長度是可以修改的。

1

數組有固定長度。如果您的集合中的字符串數量是可變的,那麼您將不得不使用列表。

0

如果新元素的索引小於數組的大小,則可以向數組添加新元素。

arr[i]="some value" // to do this i < arr.length 

如果數組完全填充元素,當您將新值賦給索引時,以前的值將被覆蓋。由於數組具有固定大小,所以不能添加比聲明大小更多的元素。

0

數組的大小是固定的,所以如果大小已經填滿,您不能將值添加到它。對於動態數組,使用List而不是數組。

做這樣

List<String> list = new ArrayList<String>(Arrays.asList("Tiel", "Culemborg", "Houten", "Geldermalsen", "Meteren", "Buren")); 

list.add("new value1"); 
list.add("new value2"); 
0

這是更好地利用有集,這會自動排除重複的條目:

Set<String> cities = new HashSet<String>(); 
cities.addAll(Arrays.asList("Tiel", "Culemborg", "Houten", "Geldermalsen", "Meteren", "Buren")); 

再增加新的城市只要致電:

sities.add(newCity); 
0
 Scanner input = new Scanner(System.in); 

     List<String> cityNames = new ArrayList<String>(); 
     //Add the city names to cityNames list... 

     cityNames.add(input.next());