java - Java 中的 map 和列表

标签 java list maps

NodeList nList2 = doc.getElementsByTagName("dep");
Map<String, List<Map<String, String>>> depMap = new HashMap<String, List<Map<String, String>>>();
for (int temp = 0; temp < nList2.getLength(); temp++) {
  Element el = (Element)nList2.item(temp);
  String type=el.getAttribute("type");
  Node nNode = nList2.item(temp);
  if (nNode.getNodeType() == Node.ELEMENT_NODE) {
    Element eElement = (Element) nNode;
    List<Map<String,String>> depList = new ArrayList<Map<String,String>>();
    String governor = getTagValue("governor", eElement);
    String dependent = getTagValue("dependent", eElement);
    Map<String, String> govdepmap = new HashMap<String, String>();
    govdepmap.put(governor, dependent);
    depList.add(govdepmap);
    List<Map<String,String>> flist = new ArrayList<Map<String,String>>();
    flist.add(govdepmap);
    depMap.put(type, flist);
  }
}

我编写了这段代码,但问题是每当循环运行时它就会替换已经存储在 depMap 中的列表。我希望它应该将新的 Map 追加到从 depMap 检索到的列表中,而不是替换它。

最佳答案

因此,您不需要在每次迭代中创建新列表,而是需要从 map 中获取列表,然后向该列表添加add()

改变

List<Map<String,String>> flist = new ArrayList<Map<String,String>>();

List<Map<String,String>> flist = depMap.get(type);
if(flist == null){
 List<Map<String,String>> flist = new ArrayList<Map<String,String>>();
}

关于java - Java 中的 map 和列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11338827/

相关文章:

java - 解析类似结构的 XML 文件的单一实现

java - 在 f5 负载均衡器跟踪 session 的情况下,如何处理来自同一 Web 服务器的一个客户端的所有请求?

python - 在python中合并具有不同长度和列的数据帧列表

android - OsmDroid 和 MapQuest : How can I use JPEG tiles?

maps - 在 Cython 中使用 C++ STL 映射

Java 简单的日期格式化程序,用于字符串日期

java - spring boot将特定的DataSource分配给JpaRepository

Java 同步集合与对象

Python 字典计数

javascript - Google Maps API 3 上的天气雷达循环