

//先判断类型是否一致,之后判断大小是否相等,最后调用方法containAll
public boolean equals(Object o) {
if (o == this)
return true;
if (!(o instanceof Set))
return false;
Collection<?> c = (Collection<?>) o;
if (c.size() != size())
return false;
try {
return containsAll(c);
} catch (ClassCastException unused) {
return false;
} catch (NullPointerException unused) {
return false;
}
}
HashSet基于HashMap实现,不允许重复元素。它通过哈希值确定元素存储位置,当冲突时使用equals方法判断是否已存在。在Java8中,若链表长度超过8且表容量大于64,链表将转换为红黑树以提高性能。
订阅专栏 解锁全文
278

被折叠的 条评论
为什么被折叠?



