试题
考点

java语言-容器和Map-Map 1.7和1.8

面5笔5

为什么HashMap在解决 hash 冲突的时候,不直接用红黑树?而选择先用链表,再转红黑树?

前往“校招VIP”小程序,刷题更快
最新校招难题刷题,快来进刷题群吧
解答

因为红黑树需要进行左旋,右旋,变色这些操作来保持平衡,而单链表不需要。当元素小于 8 个的时候,此时做查询操作,链表结构已经能保证查询性能。当元素大于 8 个的时候, 红黑树搜索时间复杂度是 O(logn),而链表是 O(n),此时需要红黑树来加快查询速度,但是新增节点的效率变慢了。

因此,如果一开始就用红黑树结构,元素太少,新增效率又比较慢,无疑这是浪费性能的。

评论
暂无评论

加载更多