【发布时间】:2013-08-05 19:05:44
【问题描述】:
我有两个HashMap<HashSet<String>, Long>,我想根据密钥进行比较。密钥是HashSet<String>,我可能需要更改为TreeSet<String>,但我认为没有必要。我将如何比较这些?
注意:地图仅用作单个 Set 的包装器。
for(HashMap<HashSet<String>, Long> entry : ListOfMaps) {
if(entry.keySet().equals(entry2.keySet())) {
// do something
}
}
我想检查 Set1.equals(Set2)。
集合必须完全相同。由于每个HashMap<Set<String>, Long> 中只有一个Set<String>,所以我很紧张,因为我抓住了所有的钥匙,或者这样可以吗?
【问题讨论】:
-
根据 javadoc docs.oracle.com/javase/6/docs/api/java/util/…,你所拥有的应该可以工作
-
酷,只是确保因为我每个人只有一套。
-
请注意,
HashSets没有排序,因此.equals()调用只是为了确保第一组中的所有字符串也出现在第二组中 -
对。但它会检查每个 HashSet 中的所有字符串,以确保它们相等还是只是比较顺序。
-
Set[A, B, C] 会等于 Set[B, C, A] 对吧?
标签: java generics data-structures collections compareto