我正在做一个关于 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;
}
在语句上: 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)
这基本上是你要找的吗?
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句