0

我有一个ListView带有未知数量的字符串元素的数组列表。我想更改/修改这些字符串项中的每一个。问题是我不知道有多少项目,因为用户可以更改它。

我有一个translate函数,它接受一个字符串并返回一个字符串。我想做的是

arraylistelement1 = translate(arraylistelement1);
arraylistelement2 = translate(arraylistelement2);
... 

listview并用新字符串重新填充数组列表。

有什么方法可以做到这一点?

4

2 回答 2

2

使用 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();
}
于 2013-10-15T00:16:57.077 回答
2

遍历列表并从原始列表创建一个新的已翻译选项列表,然后用新值替换原始列表的内容。如果您在迭代时进行替换,您将获得 ConcurrentModificationExceptions。

于 2013-10-14T22:13:14.370 回答