【问题标题】:Getting key value for Hashmap with If condition使用 If 条件获取 Hashmap 的键值
【发布时间】:2020-07-21 09:05:18
【问题描述】:

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

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

这里包含的都是我的Hashmap的名字。有人可以帮我获取未运行状态的名称

【问题讨论】:

  • 你可以遍历EntrySet(你可以通过containsAll.entrySet()获得)。然后检查条目的值,如果它符合您的条件,您可以打印条目的键。

标签: java if-statement collections hashmap


【解决方案1】:
if (containsAll != null) {
        containsAll.forEach((k, v) -> {
            if (v != null && !v.contains("Running")) {
                System.out.println(k);
            }
        });
    }

遍历map的每一个key-value对,如果value中不包含“Running”,则打印key。

【讨论】:

    【解决方案2】:

    你可以使用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(); 
        }
    

    【讨论】:

      【解决方案3】:

      我将创建一个新类来表示服务器,并在该类中将状态定义为布尔值,将名称定义为字符串。此外,我会使用这些对象的列表来遍历并执行类似的操作(假设列表类型为 List):

      ...
      for(MyServerObject mso : containsAll){
          if(mso.isRunning())
              System.out.println(mso.getName());
      }
      ...
      

      如果这是不可能的,因为您从其他地方获取地图原样,请尝试以下操作(我假设您的地图类型为 Map):

      ...
      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!");
      }
      ...
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-06-26
        • 2011-12-28
        • 2018-11-25
        • 2014-12-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多