我正在尝试弄清楚如何遍历我的HashMap
以查看中的至少一个值是否与我要查找的内容相符。
for(int i=0; i<allDogsInkennels.size(); i++){
Map<String, DogStatus> allDogsStatus = allDogsInKennels.get(i).getAllStatuses();
}
如何在此处添加If statement
/ loop
以检查至少其中一种状态是否匹配,例如&#34; APPROVED&#34;
注意:字符串=狗ID ,DogStatus = Enum显示狗的状态
答案 0 :(得分:3)
if (allDogsStatus.containsValue(DogStatus.APPROVED)) {
// ...
}
答案 1 :(得分:1)
您可以遍历地图并在匹配时停止:
boolean found = false;
for (DogStatus value : allDogsStatus.values()) {
if (value == DogStatus.APPROVED) {
found = true;
break;
}
}
更好的做法是将上述内容重构为返回boolean
。
编辑:我不记得containsValue
方法,我感到愚蠢。这可能是最好的方法,即使复杂性是相同的。