如何更改arraylist的每个字符串元素?

时间:2013-10-14 22:09:48

标签: java android listview android-listview arraylist

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

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

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

并使用新字符串重新填充listview arraylist。

有办法做到这一点吗?

2 个答案:

答案 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();
}