firstSet.equals(secondSet)
它真的取决于你想在比较逻辑中做什么…例如,如果你发现一个元素在一个集合不是在另一个发生了什么?你的方法有一个void返回类型,所以我假设你将在这个方法中做必要的工作。
更细粒度的控制,如果你需要它:
if (!firstSet.containsAll(secondSet)) {
// do something if needs be
}
if (!secondSet.containsAll(firstSet)) {
// do something if needs be
}
如果你需要得到在一个集合而不是其他的元素。
编辑:set.removeAll(otherSet)返回一个布尔值,而不是一个集合。要使用removeAll(),你必须复制集合,然后使用它。
Set one = firstSet;
Set two = secondSet
one.removeAll(secondSet);
two.removeAll(firstSet);
如果一个和两个的内容都是空的,那么你知道这两个集合是相等的。如果没有,那么你有了使这些集合不相等的元素。
你提到的记录数可能很高。如果底层实现是一个HashSet,那么每个记录的获取是在O(1)的时间内完成的,所以你不能真正得到比那更好。 TreeSet是O(log n)。