gpt4 book ai didi

java - List addAll() 方法未添加

转载 作者:行者123 更新时间:2023-12-01 10:05:18 25 4
gpt4 key购买 nike

我正在尝试直接更改数据源并将任何更改通知适配器。但 addAll() 不会更新我的列表。看来我的代码中一切正常,但在运行过程中却不然。请帮我更正代码。预先感谢您。

    List<String> pgs = myClass.getPgs();
List<String> tmppgs = pgs;

/*
.
lots of code for string processing which results in >> String content for each i
.
*/

for (int i = 0; i < tmppgs.size(); i++) {
tmppgs.set(i, content);
}

Toast.makeText(getActivity(),String.valueOf(tmppgs.size()), Toast.LENGTH_LONG).show();
// Toast shows desired result which is OK.

pgs.clear();
pgs.addAll(tmppgs);
Toast.makeText(getActivity(),String.valueOf(pgs.size()), Toast.LENGTH_LONG).show();
//Unexpectedly shows zero

mAdapter.notifyDataSetChanged();
}

最佳答案

pgstemppgs 是同一个 ArrayList 对象:

List<String> tmppgs = pgs;

因此,当您调用 pgs.clear() 时,您正在清空该列表。 pgs.addAll(tmppgs) 将不起作用,因为您正在尝试将空列表的内容添加到自身。

目前尚不清楚您为什么要执行 clear()addAll() 。如果您的目标是最终通过 set() 调用修改列表...您已经通过 set() 调用修改该列表。只需注释掉 clear()addAll() 行(最终摆脱 tmppgs,因为您不再需要它) .

关于java - List<String> addAll() 方法未添加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36522464/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com