Java 使用If条件获取Hashmap的键值
我将key=“name”和value=“state”存储在Hashmap中。 现在,一旦我得到包含所有键和值的hashmap 我想迭代hashmap,并且必须检查状态(值)是否正在运行 如果状态未运行,我想打印该服务器的名称(这是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
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!");
}
...