面试普通人VS高手系列:高手如何巧妙解决HashMap的哈希冲突问题?
- 内容介绍
- 文章标签
- 相关推荐
本文共计919个文字,预计阅读时间需要4分钟。
常用数据结构基本是面试必问的问题,比如HashMap、LinkedList、ConcurrentHashMap等。关于HashMap,有位同学面试时分享了一个问题:HashMap是如何解决哈希冲突的?关于这个问题,我们来谈谈。
普通人:常用数据结构基本上是面试必问的问题,比如HashMap、LinkList、ConcurrentHashMap等。
关于HashMap,有个学员私信了我一个面试题说: “HashMap是怎么解决哈希冲突的?”
关于这个问题,我们来模拟一下普通人和高手对于这个问题的回答。
嗯.... HashMap我好久之前看过它的源码,我记得好像是通过链表来解决的!
高手:嗯,这个问题我从四个方面来回答。
1.要了解Hash冲突,那首先我们要先了解Hash算法和Hash表。
(1)Hash算法,就是把任意长度的输入,通过散列算法,变成固定长度的输出,这个输出结果是散列值。
(2)Hash表又叫做“散列表”,它是通过key直接访问在内存存储位置的数据结构,在具体实现上,我们通过hash函数把key映射到表中的某个位置,来获取这个位置的数据,从而加快查找速度。
本文共计919个文字,预计阅读时间需要4分钟。
常用数据结构基本是面试必问的问题,比如HashMap、LinkedList、ConcurrentHashMap等。关于HashMap,有位同学面试时分享了一个问题:HashMap是如何解决哈希冲突的?关于这个问题,我们来谈谈。
普通人:常用数据结构基本上是面试必问的问题,比如HashMap、LinkList、ConcurrentHashMap等。
关于HashMap,有个学员私信了我一个面试题说: “HashMap是怎么解决哈希冲突的?”
关于这个问题,我们来模拟一下普通人和高手对于这个问题的回答。
嗯.... HashMap我好久之前看过它的源码,我记得好像是通过链表来解决的!
高手:嗯,这个问题我从四个方面来回答。
1.要了解Hash冲突,那首先我们要先了解Hash算法和Hash表。
(1)Hash算法,就是把任意长度的输入,通过散列算法,变成固定长度的输出,这个输出结果是散列值。
(2)Hash表又叫做“散列表”,它是通过key直接访问在内存存储位置的数据结构,在具体实现上,我们通过hash函数把key映射到表中的某个位置,来获取这个位置的数据,从而加快查找速度。

