我有一个ArrayList<String>
并希望添加到其中的字符串,但不能替换它。没有myArrayList.set(index, myArrayList.get(index) + "myString");
这可能吗?根据我的理解,myArrayList.get(index) += "myString";
不起作用,因为它是只读的。
答案 0 :(得分:4)
语句myArrayList.get(index) += "myString";
不起作用,因为您永远不会将其存储在arraylist中。由于immutability of strings,您的新字符串已创建,但未引用。因此,您没有发现它反映在arraylist元素中。
就个人而言,我会选择第一种方式。
答案 1 :(得分:0)
java中的字符串是不可变的。 ArrayList的参与与问题无关。您可以使用ArrayList&lt; StringBuilder&gt;对于你的用例,我想。
myArray.get( i ).append( "foo" );
答案 2 :(得分:0)
String
是不可变的类,因此您无法执行此操作,如果添加元素,则可以调用myArrayList.add(element)
或myArrayList.add(index, element)
答案 3 :(得分: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));