gpt4 book ai didi

java - 无法在不删除前一个元素的情况下在 Arraylist 中添加 HashMap

转载 作者:行者123 更新时间:2023-12-01 12:54:19 26 4
gpt4 key购买 nike

我的代码:

public ArrayList<Map<String, String>> XMLToArray(String Data, Document Doc,
XMLParser file) {
Map<String, String> map = new HashMap<String, String>();
ArrayList<Map<String, String>> menuItems = new ArrayList<Map<String, String>>();

for (int i = 0; i < Doc.getElementsByTagName("item").getLength(); i++) {

Element e = (Element) Doc.getElementsByTagName("title").item(i);
Element e2 = (Element) Doc.getElementsByTagName("description")
.item(i);

// Element e3 = (Element)Doc.getElementsByTagName("link").item(i);

map.put("titre", file.getElementValue(e));
map.put("description", file.getElementValue(e2));

// map.put("lien", file.getElementValue(e3));

// adding HashList to ArrayList
menuItems.add(map);
}

return menuItems;
}

在调试中,我可以看到 map 中的每个标题和描述。当我将 map 添加到 arrayList 中时,arraylist 中所有先前的键值都将替换为当前的键值。所以最后我有一个包含 20 个相同标题和描述的 arrayList。

如何在 arrayList 中添加多个标题和描述而不删除所有其他内容?

最佳答案

您应该为每个菜单项创建一个新 map 。在下面的示例中,我将 map 初始值设定项移至 for 循环:

public ArrayList<Map<String, String>> XMLToArray(String Data, Document Doc, XMLParser file)
{

ArrayList<Map<String, String>> menuItems = new ArrayList<Map<String, String>>();

for(int i = 0; i < Doc.getElementsByTagName("item").getLength();i++)
{
Map<String, String> map = new HashMap<String, String>();

Element e = (Element)Doc.getElementsByTagName("title").item(i);
Element e2 = (Element)Doc.getElementsByTagName("description").item(i);

//Element e3 = (Element)Doc.getElementsByTagName("link").item(i);

map.put("titre", file.getElementValue(e));
map.put("description", file.getElementValue(e2));

//map.put("lien", file.getElementValue(e3));

// adding HashList to ArrayList
menuItems.add(map);
}

return menuItems;
}

关于java - 无法在不删除前一个元素的情况下在 Arraylist 中添加 HashMap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24010987/

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