1

我有以下 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(即,在运行时),所以我不知道如何访问每个数据。

4

1 回答 1

1

我解决了这个问题以访问哈希图中的每个值

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("}");
        }
于 2012-06-06T14:58:50.207 回答