gpt4 book ai didi

Java : Get Data from Nested HashMap

转载 作者:行者123 更新时间:2023-12-02 04:20:31 24 4
gpt4 key购买 nike

大家好,我已经查看了下面提到的问题以寻求答案,但这没有帮助,因为他们给出了静态值的答案,而我需要从动态方法中获取值

How to put/get values into/from Nested HashMap

Getting value from Nested HashMap into another Map

How do I access nested HashMaps in Java?

这是我的场景:

这是我用于从 HashMap 添加和检索数据的类:-

HashMap<Integer, String> xmlQueryNode = new HashMap<Integer, String>();
HashMap<Integer, HashMap<Integer, String>> splunkHashMap = new HashMap<Integer, HashMap<Integer, String>>();
id = 0;
xmlQueryNode.put(0, "F0name");
xmlQueryNode.put(1, "L0name");
xmlQueryNode.put(2, "M0name");

splunkHashMap.put(id, xmlQueryNode);

id = 1;
xmlQueryNode.put(0, "F1name");
xmlQueryNode.put(1, "L1name");
xmlQueryNode.put(2, "M1name");

splunkHashMap.put(id, xmlQueryNode);

id = 2;
xmlQueryNode.put(0, "F2name");
xmlQueryNode.put(1, "L2name");
xmlQueryNode.put(2, "M2name");

splunkHashMap.put(id, xmlQueryNode);

id = 3;
xmlQueryNode.put(0, "F3name");
xmlQueryNode.put(1, "L3name");
xmlQueryNode.put(2, "M3name");

splunkHashMap.put(id, xmlQueryNode);

for (Integer key : splunkHashMap.keySet()) {
HashMap<Integer, String> temp = new HashMap<Integer, String>();
//System.out.println(key);
temp = otsdbQueryData.get(key);
for(Integer key1: temp.keySet()){
System.out.println(temp.get(key1));
}
}

此代码的问题是我得到的所有 4 个条目的输出均低于:-

F3name
L3name
M3name

F3name
L3name
M3name

F3name
L3name
M3name

F3name
L3name
M3name

任何人都可以指出我在哪里犯了错误,因为我的 HashMap 被最后插入的 HashMap 覆盖了?

最佳答案

放置内部 HashMap 后,您需要重新初始化该映射。

xmlQueryNode = new HashMap<Integer,String>();
xmlQueryNode.put(0, "F1name");
xmlQueryNode.put(1, "L1name");
xmlQueryNode.put(2, "M1name");

否则它将更新相同的引用。

请检查更新后的代码。

int id =0;

HashMap<Integer, String> xmlQueryNode = new HashMap<Integer, String>();
HashMap<Integer, HashMap<Integer, String>> splunkHashMap = new HashMap<Integer, HashMap<Integer, String>>();
id = 0;
xmlQueryNode.put(0, "F0name");
xmlQueryNode.put(1, "L0name");
xmlQueryNode.put(2, "M0name");

splunkHashMap.put(id, xmlQueryNode);

xmlQueryNode = new HashMap<Integer, String>();
id = 1;
xmlQueryNode.put(0, "F1name");
xmlQueryNode.put(1, "L1name");
xmlQueryNode.put(2, "M1name");

splunkHashMap.put(id, xmlQueryNode);

xmlQueryNode = new HashMap<Integer, String>();
id = 2;
xmlQueryNode.put(0, "F2name");
xmlQueryNode.put(1, "L2name");
xmlQueryNode.put(2, "M2name");

splunkHashMap.put(id, xmlQueryNode);

xmlQueryNode = new HashMap<Integer, String>();
id = 3;
xmlQueryNode.put(0, "F3name");
xmlQueryNode.put(1, "L3name");
xmlQueryNode.put(2, "M3name");

splunkHashMap.put(id, xmlQueryNode);

for (Integer key : splunkHashMap.keySet()) {
HashMap<Integer, String> temp = new HashMap<Integer, String>();
//System.out.println(key);
temp = splunkHashMap.get(key);
for(Integer key1: temp.keySet()){
System.out.println(temp.get(key1));
}
}

关于Java : Get Data from Nested HashMap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32820812/

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