请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

哈希表中存在哈希冲突时存入链表的问题

波波老师,您说我们创建的哈希表,当存在哈希冲突的时候,转为链表储存,但是我们在创建的时候是在TreeMap数组中的每个索引下创建了TreeMap对象,我可不可以理解为是基于树的映射对象,这并不是链表呀?是不是要创建LinkedList对像才可以呢?

正在回答

1回答

印象里我在课程中说过,Java 语言标准库的实现是,在数据量比较小的情况下,映射对应的是链表,当一个键的数据量比较大的时候,转成红黑树处理。不过使用红黑树还有一个前提条件,键必须有可比性。


在课程中,我直接使用红黑树存储了。这个局限性,在这一章的最后一节也有提及。


是的,如果你希望实现更通用的哈希表,将每个键映射成链表就可以。


继续加油!:)

0 回复 有任何疑惑可以回复我~
  • 波波老师好,我有一个相关的问题。就是您提及的当一个键的数据量比较大的时候会从链表转成红黑树,但是在课程代码实现中当一个键的平均数据量大于10,数组就会扩容,这样键的平均数据量最大也超不过10,那如何会触发条件将链表转变为红黑树呢?
    回复 有任何疑惑可以回复我~ 2020-05-15 03:57:31
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信