gpt4 book ai didi

java - 添加内部 for 循环时,String 的 ArrayList 变为两倍

转载 作者:行者123 更新时间:2023-11-29 08:05:43 25 4
gpt4 key购买 nike

我正在遍历 JSONArray。 namesamountArrayList <String>

JSONArray data = json.getJSONArray("data");
int i = 0;
for (i = 0; i < data.length(); ++i) {
JSONObject rec = data.getJSONObject(i);
String name = rec.getString("name");
names.add(i, name);
String amount_v = rec.getString("amount");
amount.add(i, amount_v);
Log.v(logtag, i + " - " + names.size());
}
Log.v(logtag, "final - " + names.size());

对于 i 的每个值,names.size() 都是 i 的两倍,即使我只在循环中添加一个元素。数据有 5 条记录,名称和金额为两列。但在循环之后,名称包含所有 10 个值(5 个名称和 5 个金额)。但实际上,只有 5 个名字应该被添加到名字列表中。

我在日志中看到的..

0 - 2
1 - 4
2 - 6
3 - 8
4 - 10
final - 10

为什么要加上amount_v的值进入名单?

最佳答案

因为名为 amountnames 的两个引用引用同一个 ArrayList 实例。

关于java - 添加内部 for 循环时,String 的 ArrayList 变为两倍,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11383337/

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