检查HashMap中的至少值是否匹配?

时间:2016-03-11 14:55:14

标签: java for-loop hashmap

我正在尝试弄清楚如何遍历我的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显示狗的状态

2 个答案:

答案 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方法,我感到愚蠢。这可能是最好的方法,即使复杂性是相同的。