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

Java - Best way to compare two Sets by hashes (via ==)

我有两组弦乐。字符串是相同的 (== returns true)。我相信通过 == 进行比较应该比通过 equals()hashCode() 进行比较更快。那么如何在不使用 equals() 的情况下确保它们相同?谢谢

因为两个Set不是同一个实例,你不能用==来比较Set

现在,如果您使用 Setequals,它("it" 我指的是 AbstractSet 的默认实现)将验证两个 Set 具有相同的大小,然后遍历一个 Set 的元素并检查另一个 Set 是否包含它们中的每一个。

例如,如果您正在使用 HashSets,为了查找 String 是否包含在某些 HashSet 中,hashCode() 必须是用于查找可能包含搜索到的 String 的桶,但稍后将调用 Stringequals() 来验证 String 是否等于搜索到的 StringStringequals() 实际上以

开头
    if (this == anObject) {
        return true;
    }

因此,您的两个 Set 可能包含对同一 String 实例的引用这一事实将有助于改进 Set 比较的运行时间。