Như những người khác đã chỉ ra:
- Bạn không thể sửa đổi chuỗi trong Java, vì vậy
s = "x" + s
sẽ tạo ra một chuỗi mới (mà sẽ không được chứa trong danh sách)
- Thậm chí nếu bạn có thể, biến số
s
là một biến cục bộ, mà khi được gán cho, không ảnh hưởng đến các giá trị chứa trong danh sách.
Giải pháp là trong trường hợp này sử dụng một StringBuilder
đại diện cho một chuỗi mà bạn thể thực sự sửa đổi, hoặc sử dụng một ListIterator
như @ Michael Borgwardt và @jarnbjo chỉ ra.
Sử dụng một 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");
Sử dụng một 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
Chỉ sửa đổi giao diện Iterator cho phép xóa. Mặt khác, giao diện ListIterator đã thiết lập các phương thức() và add(). –
Bạn đang phải tất nhiên, làm rõ tốt. –