如何在另一个Map内迭代Map? [关闭]

问题描述 投票:-2回答:1

我正在开发一个关于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;
}
java dictionary
1个回答
-1
投票

在语句上:if(entry.getValue()。equals(num))entry.getValue()是一个Map,但num是一个字符串。这两个类型不兼容,因此它们永远不会相等。

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

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

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

你的问题并没有明确说明你想要什么,但我猜你要么想在内部Map中查找一个键,其中键或值匹配num。你可以用它们做到这一点

map.containsKey(num)

要么

map.containsValue(num)

这基本上是你在寻找什么?

© www.soinside.com 2019 - 2024. All rights reserved.