【发布时间】:2017-06-16 13:24:26
【问题描述】:
我想问你,如何在java中比较四种HashMaps的大小。 我怎样才能知道,如果所有 HashMaps 中有 >= 2 个键,它们是否在同一个中...... 谢谢。
【问题讨论】:
-
你能添加一个例子和你到目前为止尝试过的代码吗?
-
语言中没有...必须为此编写自定义方法。
我想问你,如何在java中比较四种HashMaps的大小。 我怎样才能知道,如果所有 HashMaps 中有 >= 2 个键,它们是否在同一个中...... 谢谢。
【问题讨论】:
您可以检查哈希图键的交集长度:
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<Integer, Whatever> 时,您需要Set<Integer>。
【讨论】:
hashMap1。
retainAll 返回一个布尔值并且不能被链接。固定的。编辑:关于Set 备份Map 也是正确的,我也通过使用addAll 而不是处理第一个地图的keySet 来修复它
addAll(),在HashSet的构造函数中给出即可。
String,然后您说 OP 应该根据需要更改它,而不是在示例中显示错误的 raw 类型。如果 OP 在不更改的情况下复制您的示例,它会起作用但很糟糕。如果 example 有错误的类型参数,只需复制将强制 OP 更改类型,确保代码是好的。