2014-02-12 109 views
0

我有一個ArrayList<String>並希望添加到已經在其中的字符串,但不能替換它。這可能沒有myArrayList.set(index, myArrayList.get(index) + "myString");?根據我的理解,myArrayList.get(index) += "myString";不起作用,因爲它是隻讀的。Java添加到arrayList中已有的元素

回答

4

聲明myArrayList.get(index) += "myString";不起作用,因爲您從不將它存儲回arraylist。由於immutability of strings,您的新字符串已創建,但未被引用。因此,你不會發現它反映在arraylist元素。

就我個人而言,我會選擇第一種方式。

0

java中的字符串是不可變的。 ArrayList的介入與這個問題無關。我猜你可以使用ArrayList < StringBuilder>作爲你的用例。

myArray.get(i).append("foo"); 
0

String不變類,所以你不能做到這一點,如果添加的元素,你可以打電話myArrayList.add(element)myArrayList.add(index, element)

0

也許你可以使用StringBuilder,而不是String

例如,

ArrayList<StringBuilder> list = new ArrayList<StringBuilder>(); 
    int index = 0; 
    list.add(new StringBuilder("")); 
    System.out.println(list.get(index)); 
    list.get(index).append("once"); 
    System.out.println(list.get(index)); 
    list.get(index).append("-twice"); 
    System.out.println(list.get(index)); 
相關問題