【问题标题】:How to change every string element of an arraylist?如何更改数组列表的每个字符串元素?
【发布时间】:2013-10-22 14:25:54
【问题描述】:

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

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

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

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

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

【问题讨论】:

  • 不知道元素个数怎么办?
  • 类似(for int i=0; i< mArrayList.size(); i++){...}

标签: java android listview android-listview arraylist


【解决方案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();
}

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • ArrayList temp = new ArrayList(); for(String string : strings){ temp.add(translate(string)); } 字符串 = 温度;
    • @MuratKaya 他刚刚做到了!
    • 是的,以前没见过。我无法让代码工作。我把我的数组列表而不是字符串。我可以用任何东西替换字符串吗?
    猜你喜欢
    • 1970-01-01
    • 2023-03-20
    • 1970-01-01
    • 2017-03-12
    • 1970-01-01
    • 2011-02-28
    • 2016-12-26
    • 2021-10-05
    • 2021-11-09
    相关资源
    最近更新 更多