【问题标题】:How do I iterate through a Map inside of another Map? [closed]如何遍历另一个地图内的地图? [关闭]
【发布时间】:2018-03-04 04:22:35
【问题描述】:

我正在开发一个关于 Java 的个人项目。我有一个名为允许的地图,第二个参数是另一个地图。我正在尝试比较允许内部地图的第二个参数。如果有人可以帮助我,那将是一个很大的帮助。

public boolean checkBank(String bank, int cNumber){
    Map <String, Map<String, String> > allow = new HashMap<>();
    String num = Integer.toString(cNumber);
    Iterator<Map.Entry<String, Map<String, String>>> entries = allow.entrySet().iterator();
    while (entries.hasNext()) {
        Map.Entry<String, Map<String, String>> entry = entries.next();
        if (entry.getKey().equals(bank)) {
            String all = entry .getValue().get(0);
            for (int i = 0; i < entry.getValue().size(); i++) {
                if(entry.getValue().equals(num)) {
                    return true;
                }
            }
        }
    }
    return false;
}

【问题讨论】:

标签: java dictionary


【解决方案1】:

关于语句:if(entry.getValue().equals(num)) entry.getValue() 是一个 Map,但 num 是一个字符串。这两个不是兼容的类型,所以它们永远不可能相等。

值得注意的是,您正在寻找一个键值等于银行的条目。与其扫描所有 Map.Entry 对象以查找具有正确值的对象,不如直接使用以下语句:

Map<String,String> map = allow.get(bank);

让外部地图为您完成这项工作。

您的问题并没有明确说明您想要什么,但我猜您要么想在内部 Map 中查找键或值与 num 匹配的条目。你可以这样做

map.containsKey(num)

map.containsValue(num)

这基本上就是你要找的吗?

【讨论】:

  • 如果您的答案中有问题,请在评论部分(问题下方)提出问题,而不是将其作为解决方案发布。明确问题后,请发布解决方案。
猜你喜欢
  • 2011-10-08
  • 1970-01-01
  • 2015-06-15
  • 2011-06-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多