Java 使用If条件获取Hashmap的键值

Java 使用If条件获取Hashmap的键值,java,if-statement,collections,hashmap,Java,If Statement,Collections,Hashmap,我将key=“name”和value=“state”存储在Hashmap中。 现在,一旦我得到包含所有键和值的hashmap 我想迭代hashmap,并且必须检查状态(值)是否正在运行 如果状态未运行,我想打印该服务器的名称(这是hashmap中的关键) 我使用的代码是 for(int z=0; z<=containsAll.size();z++) { if(!containsAll.containsValue("Running")) { Sys

我将key=“name”和value=“state”存储在Hashmap中。 现在,一旦我得到包含所有键和值的hashmap 我想迭代hashmap,并且必须检查状态(值)是否正在运行 如果状态未运行,我想打印该服务器的名称(这是hashmap中的关键) 我使用的代码是

for(int z=0; z<=containsAll.size();z++) {
    if(!containsAll.containsValue("Running")) {
        System.out.println(containsAll.keySet());
    }
}

for(intz=0;z您可以使用
entrySet()遍历映射


迭代映射的每个键-值对,如果值不包含“Running”,则打印键。

我将创建一个新类来表示服务器,在这个类中,我将状态定义为boolean,名称定义为string。此外,我将使用这些对象的列表进行迭代,并执行类似的操作(假设列表是类型化列表):

如果这是不可能的,因为您从其他地方获得地图,请尝试以下方法(我假设您的地图是键入的地图):

。。。
迭代器迭代器=containsAll.entrySet().Iterator();
while(iterator.hasNext()){
Map.Entry=iterator.next();
if(“Running”.equalsIgnoreCase(entry.getValue())
System.out.println(entry.getKey()+“正在运行!”);
}
...

您可以迭代EntrySet(通过
containsAll.EntrySet()
获得)。然后检查条目的值,如果它符合您的条件,您可以打印条目的键。
   Iterator it = containsAll.entrySet().iterator();
   while (it.hasNext()) {
        Map.Entry pair = (Map.Entry)it.next();
        System.out.println(pair.getKey() + " = " + pair.getValue());
        if(!((pair.getValue()).equals("Running")){
              System.out.println(pair.getKey()+" is not running");
        }
        it.remove(); 
    }
if (containsAll != null) {
        containsAll.forEach((k, v) -> {
            if (v != null && !v.contains("Running")) {
                System.out.println(k);
            }
        });
    }
...
for(MyServerObject mso : containsAll){
    if(mso.isRunning())
        System.out.println(mso.getName());
}
...
...
Iterator<Map.Entry<String, String>> iterator = containsAll.entrySet().iterator();
while (iterator.hasNext()) {
    Map.Entry<String, String> entry = iterator.next();
    if("Running".equalsIgnoreCase(entry.getValue())
        System.out.println(entry.getKey() + " is running!");
}
...