我正在开发一个关于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;
}
答案 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)
这基本上就是你要找的吗?