如何在另一个地图中迭代地图?

时间:2018-03-04 04:22:35

标签: java dictionary

我正在开发一个关于Java的个人项目。我有一个名为allow的Map,第二个参数是另一个Map。我想比较允许的Map里面的第二个参数。如果有人能帮助我,那将是一个很大的帮助。

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;
}

1 个答案:

答案 0 :(得分:-1)

声明:if(entry.getValue()。equals(num)) entry.getValue()是一个Map,但num是一个字符串。这两个类型不兼容,因此永远不能相等。

值得注意的是,您正在寻找键值等于bank的一个条目。而不是扫描所有具有正确值的Map.Entry对象,为什么不使用语句:

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

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

您的问题并没有明确说明您想要的内容,但我猜您要么在内部Map中查找键或值匹配num的Entry。你可以用

做到这一点
map.containsKey(num)

map.containsValue(num)

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