初学Java,看到散列集这里。
问题描述:
Java核心技术(卷一) 讲到,HashSet实现了基于散列表的集,在JavaSE8中,桶满时会从链表转为平衡二叉树进而提高效率。 但是我的疑惑是,先由hashCode确定桶的索引,然后通过equals判断元素是否冲突。既然都是由equals方法进行判重与查询,为何链表的效率就差了呢? 即便转为了平衡二叉树,不也是通过equals方法一个一个比较吗?
还是这玩意不好解释,建议看源码呢?
希望各位大大帮忙解答一下。
扫描二维码,关注牛客
下载牛客APP,随时随地刷题
全部评论
(1) 回帖