我有以下yaml数据
networkLayerConfig:
eventMap: !!map
!!int 100 :
!!int 1 : IDLING
!!int 2 : ACCEPTING
我使用yamlbean将此数据读取到以下类
class NetworkLayerConfig {
private HashMap<Integer, Map<Integer, String>> eventMap;
}
我尝试访问每个密钥及其关联的值对。
如果我在java类本身声明它时尝试访问这些数据,如
myHashMap = new HashMap<Integer, Map<Integer, String>>();
myHashMap.put(100, new HashMap<Integer, String>());
myHashMap.get(100).put(1, "IDLING");
myHashMap.get(100).put(2, "ACCEPTING");
使用以下代码
for (Map.Entry<Integer, String> oneMap : myHashMap.get(100).entrySet()) {
System.out.println(oneMap.getKey());
System.out.println(oneMap.getValue());
}
因为我必须仅从yaml文件中读取值100(即,在运行时),我不知道如何访问每个数据。
答案 0 :(得分:0)
我解决了这个问题,以访问hashmap中的每个值
Iterator<?> iterator = myparentHashMap.entrySet().iterator();
while (iterator.hasNext()) {
Entry myEntry = (Entry) iterator.next();
System.out.println(myEntry.getKey() + " : ");
HashMap<Integer, String> childHashMaps = ((HashMap<Integer, String>) myEntry.getValue());
System.out.println("{");
for (Map.Entry<Integer, String> childHashMap : childHashMaps.entrySet()) {
System.out.print(childHashMap.getKey() + " : ");
System.out.println(childHashMap.getValue());
}
System.out.println("}");
}