【问题标题】:Java | Compare four HashMaps爪哇 |比较四个 HashMap
【发布时间】:2017-06-16 13:24:26
【问题描述】:

我想问你,如何在java中比较四种HashMaps的大小。 我怎样才能知道,如果所有 HashMaps 中有 >= 2 个键,它们是否在同一个中...... 谢谢。

【问题讨论】:

  • 你能添加一个例子和你到目前为止尝试过的代码吗?
  • 语言中没有...必须为此编写自定义方法。

标签: java hashmap compare size


【解决方案1】:

您可以检查哈希图键的交集长度:

Set<String> commonKeys = new HashSet<>(hashMap1.keySet());
commonKeys.retainAll(hashMap2.keySet());
commonKeys.retainAll(hashMap3.keySet());
commonKeys.retainAll(hashMap4.keySet());
commonKeys.size();

您应该将commonKeys Set 的类型参数调整为HashMaps' 键的类型:处理HashMap&lt;Integer, Whatever&gt; 时,您需要Set&lt;Integer&gt;

【讨论】:

  • 那不会编译。如果确实如此,它将摧毁 hashMap1
  • @Andreas 实际上,retainAll 返回一个布尔值并且不能被链接。固定的。编辑:关于Set 备份Map 也是正确的,我也通过使用addAll 而不是处理第一个地图的keySet 来修复它
  • 不用addAll(),在HashSet的构造函数中给出即可。
  • 我建议您的示例显示类型参数String,然后您说 OP 应该根据需要更改它,而不是在示例中显示错误的 raw 类型。如果 OP 在不更改的情况下复制您的示例,它会起作用但很糟糕。如果 example 有错误的类型参数,只需复制将强制 OP 更改类型,确保代码是好的。
猜你喜欢
  • 2011-07-23
  • 1970-01-01
  • 2012-01-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多