【问题标题】:remove element from hash map if key is empty如果键为空,则从哈希映射中删除元素
【发布时间】:2013-12-04 23:53:35
【问题描述】:

如何在Java中找到HashMap的元素,如果HashMap是表单并且一个键是空的,所以它只包含一个空白字符。

在我的例子中:

让 wordMap 是一个填充了元素的 HashMap 的实例。

if (wordMap.containsKey("")) {
  wordMap.remove("");
}

这不起作用。我希望有人可以帮助我。

完成此操作后,我将哈希映射转换为树映射并按最大整数对其进行排序。我将它打印到控制台,这就是我得到的

System.out.println("results: " + tree)

我进入控制台:

results: { =194, in=73, ...}

谢谢

【问题讨论】:

  • 你确定吗?这非常有效:ideone.com/YmpIyC
  • "一个键是空的,所以它只包含一个空白字符。" -- 这是什么意思?
  • 这对我有用。实际上,您实际上并不需要检查 containsKey(),因为 remove() 如果密钥不存在则返回 null
  • 它适用于每个使用 JAVA 的人 ;)
  • 什么对你不起作用?

标签: java string hashmap key


【解决方案1】:

您可以做一些不同的事情。对于您的问题,我会这样做:

if (wordMap.containsKey(" ")) {
  wordMap.remove(" ");
}

但是,为了更全面,我会遍历键并删除任何通过 StringUtils.isEmpty() 测试的键。

【讨论】:

  • if (wordMap.containsKey(" ")) 不是必需的。只需致电remove
【解决方案2】:

您是否正在尝试检索该值?如果是,那么您需要替换它 wordMap.remove(""); 和 wordMap.get("");

否则,如果您尝试使用“”键删除条目,这是正确的方法。

【讨论】:

    【解决方案3】:

    如果您使用的是 Java 8, 那么您可以应用以下解决方案。

        wordMap.entrySet()
           .removeIf(e -> StringUtils.isBlank(e.getKey()));
    

    这里的StringUtils.isBlank 可以替换为自定义逻辑来检查无效键。

    【讨论】:

      猜你喜欢
      • 2014-06-19
      • 1970-01-01
      • 2011-03-27
      • 2013-10-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-20
      相关资源
      最近更新 更多