Java - 通过哈希比较两个集合的最佳方法(via ==)

时间:2016-02-17 16:39:03

标签: java set

我有两组字符串。字符串是相同的(==返回true)。我认为通过==进行比较应该比通过equals()hashCode()进行比较更快。那么如何确保它们不使用equals()?感谢

1 个答案:

答案 0 :(得分:4)

由于两个Set不是同一个实例,因此您无法使用==来比较Set

现在,如果您使用Set' equals,那么(以及#34;它"我的意思是AbstractSet的默认实现)将验证两个Set具有相同的大小,然后迭代一个Set的元素,并检查另一个Set是否包含它们中的每一个。

例如,如果您使用的是HashSet,为了查找某些String中是否包含HashSet,必须使用hashCode()找到可能包含搜索到的String的存储分区,但稍后会调用String的{​​{1}}来验证是否存在等于搜索到的equals() String {1}}。 String' s String实际上以

开头
equals()

因此,您的两个 if (this == anObject) { return true; } 可能包含对同一Set实例的引用这一事实将有助于改善String比较的运行时间。