我有两组字符串。字符串是相同的(==
返回true
)。我认为通过==
进行比较应该比通过equals()
或hashCode()
进行比较更快。那么如何确保它们不使用equals()
?感谢
答案 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
比较的运行时间。