我有一个ListView
,其中包含一个字符串元素数量未知的arraylist。我想更改/修改这些字符串项中的每一个。问题是我不知道有多少项,因为用户可以更改它。
我有一个translate
函数,它接受一个字符串并返回一个字符串。我想做的是
arraylistelement1 = translate(arraylistelement1);
arraylistelement2 = translate(arraylistelement2);
...
并使用新字符串重新填充listview
arraylist。
有办法做到这一点吗?
答案 0 :(得分:2)
遍历列表并从原始列表创建新的已翻译选项列表,然后使用新值替换原始列表的内容。如果在迭代时进行替换,则会得到ConcurrentModificationExceptions。
答案 1 :(得分:1)
使用ListIterator.set:
public static void main(String[] args) {
List<String> list = new ArrayList<>(Arrays.asList("s0", "s1", "s2"));
ListIterator<String> iter = list.listIterator();
while (iter.hasNext())
iter.set(translate(iter.next()));
for (String element : list)
System.out.println(element);
}
public static String translate(String element) {
return element + " " + Math.random();
}