2013-10-14 197 views
0

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

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

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

和重新填充listview ArrayList的新字符串。

这是怎么回事?

+0

使用。 – nhaarman

+0

如何在不知道元素数量的情况下做到这一点? –

+0

类似于'(for int i = 0; i nhaarman

回答

2

迭代列表并从原始创建一个新的翻译选项列表,然后用新值替换原始列表的内容。如果在迭代过程中进行替换,则会得到ConcurrentModificationExceptions。

+1

ArrayList temp = new ArrayList (); (字符串字符串:字符串){ temp.add(translate(string)); } strings = temp; – sddamico

+0

你能提供一个示例代码吗? –

+0

@MuratKaya他刚刚做到了! – Simon

1

使用ListIterator.set:for循环

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(); 
} 
相关问题