Java - 通过哈希比较两个集合的最佳方式(通过==)
Java - Best way to compare two Sets by hashes (via ==)
我有两组弦乐。字符串是相同的 (==
returns true
)。我相信通过 ==
进行比较应该比通过 equals()
或 hashCode()
进行比较更快。那么如何在不使用 equals()
的情况下确保它们相同?谢谢
因为两个Set
不是同一个实例,你不能用==
来比较Set
。
现在,如果您使用 Set
的 equals
,它("it" 我指的是 AbstractSet
的默认实现)将验证两个 Set
具有相同的大小,然后遍历一个 Set
的元素并检查另一个 Set
是否包含它们中的每一个。
例如,如果您正在使用 HashSet
s,为了查找 String
是否包含在某些 HashSet
中,hashCode()
必须是用于查找可能包含搜索到的 String
的桶,但稍后将调用 String
的 equals()
来验证 String
是否等于搜索到的 String
。 String
的 equals()
实际上以
开头
if (this == anObject) {
return true;
}
因此,您的两个 Set
可能包含对同一 String
实例的引用这一事实将有助于改进 Set
比较的运行时间。
我有两组弦乐。字符串是相同的 (==
returns true
)。我相信通过 ==
进行比较应该比通过 equals()
或 hashCode()
进行比较更快。那么如何在不使用 equals()
的情况下确保它们相同?谢谢
因为两个Set
不是同一个实例,你不能用==
来比较Set
。
现在,如果您使用 Set
的 equals
,它("it" 我指的是 AbstractSet
的默认实现)将验证两个 Set
具有相同的大小,然后遍历一个 Set
的元素并检查另一个 Set
是否包含它们中的每一个。
例如,如果您正在使用 HashSet
s,为了查找 String
是否包含在某些 HashSet
中,hashCode()
必须是用于查找可能包含搜索到的 String
的桶,但稍后将调用 String
的 equals()
来验证 String
是否等于搜索到的 String
。 String
的 equals()
实际上以
if (this == anObject) {
return true;
}
因此,您的两个 Set
可能包含对同一 String
实例的引用这一事实将有助于改进 Set
比较的运行时间。