【问题标题】:Java hashmap iterate only certain keysJava hashmap 仅迭代某些键
【发布时间】:2015-10-08 20:58:31
【问题描述】:

当我进入第二个循环时,我正在寻找一种方法来获取特定键的值。我正在使用snakeyaml 并将其加载到地图中。我的 yaml 看起来像这样:

number:
  id: status.number
  label: Number
contactType:
  id: status.contact_type
  label: Contact Type

我正在尝试做的只是获取 id 的键和值。这可能非常明显,但我还没有找到这样做的方法。

Map<String, Map<String, String>> a = (Map<String, Map<String, String>>) yaml.load(input);

for (Map.Entry<String, Map<String, String>> t : a.entrySet()) {
    String key = t.getKey();

    for (Map.Entry<String, String> e : t.getValue().entrySet()) {
       System.out.println("OuterKey: " + key + " InnerKey: " + e.getKey() + " VALUE:" + e.getValue());
    }
}

【问题讨论】:

  • 代替你的内循环:t.getValue().get("id")?

标签: java hashmap yaml


【解决方案1】:

要获取“内部键”的值,您不需要遍历每个内部映射。

在以下示例中,我假设您已经有一个 innerKey 变量来保存所需的内部键。

Map<String, Map<String, String>> a = (Map<String, Map<String, String>>) yaml.load(input);

for (Map.Entry<String, Map<String, String>> t : a.entrySet()) {
    String outerKey = t.getKey();
    String innerValue = t.getValue().get(innerKey);
    System.out.println("OuterKey: " + outerKey + " InnerKey: " + innerKey + " VALUE:" + innerValue);
} 

【讨论】:

  • 是的。盯着我的脸。非常感谢!
猜你喜欢
  • 2011-03-21
  • 2010-12-02
  • 2021-09-26
  • 2014-01-02
  • 2015-09-19
  • 1970-01-01
  • 1970-01-01
  • 2019-09-04
  • 2011-03-16
相关资源
最近更新 更多