Как уже отмечали другие:
- Вы не можете изменять строки в Java, поэтому
s = "x" + s
создаст новую строку (которая не будет содержаться в списке) - Даже если бы вы могли, переменная
s
является локальной переменной, которая, когда присваивается, не влияет на значения, содержащиеся в списке.
В этом случае решение заключается в использованииStringBuilder
, представляющий строку, которую вы можете фактически изменить, или использовать ListIterator
, как указывает @Michael Borgwardt и @jarnbjo.
Использование StringBuilder
:
List<StringBuilder> someStrings = new LinkedList<StringBuilder>();
someStrings.add(new StringBuilder("hello"));
someStrings.add(new StringBuilder("world"));
for (StringBuilder s : someStrings)
s.insert(0, "x");
Использование ListIterator
:
List<String> someStrings = new LinkedList<String>();
someStrings.add("hello");
someStrings.add("world");
for (ListIterator<String> iter = someStrings.listIterator(); iter.hasNext();)
iter.set("x" + iter.next());
ideone.com demo