gpt4 book ai didi

java - 添加到 arraylist 后不允许更改 hashmap 值

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

我有这个数组列表和另一个 HashMap

 ArrayList<HashMap<String, String>> agentList = new ArrayList<HashMap<String, String>>();
HashMap<String, String> agentproperty = new HashMap<String, String>();

我已经从 php 文件收到了 jArray。并尝试使用 hashmap 将其放入数组中。

 JSONArray jArray = jsonObj.getJSONArray(TAG_AGENT);
String id = null;
String name = null;

for (int i = 0; i < jArray.length(); i++) {
JSONObject a = jArray.getJSONObject(i);
id = a.getString(TAG_AGENTID);
name = a.getString(TAG_NAME);

agentproperty.put("AGENTID", id);
agentproperty.put("NAME", name);

Log.d("id",id);
Log.d("name",name);
agentList.add(agentproperty);


}
Log.d("firstperson",String.valueOf(agentList.get(0)));
Log.d("secondperson",String.valueOf(agentList.get(1)));

我可以得到

id 1, hame cathy; id 2, name john

用于循环内的日志。但从最后的日志中,我得到了

id 2,姓名约翰; ID 2,姓名约翰即使添加到 arraylist 中,agentproperty 的值似乎也发生了变化。我尝试采用 agentList.add(agentproperty);循环之外。没有工作。仅插入最后一个值(id 2,name john)。知道如何用我从循环中获得的所有值填充这个数组吗?我需要在 ListView 中使用agentList。

最佳答案

是的。您必须在每次迭代时创建 HashMap 的新实例,否则如果条目已存在,您将覆盖给定键的值

关于java - 添加到 arraylist 后不允许更改 hashmap 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24651417/

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