在讲哈希表之前,先来看一道leetcode上的题目:
这道题可以简单地用map来解决,但是利用数组会让整个解题步骤更加简洁
看了上面的问题,那么来说一下什么是哈希表
-
哈希函数的设计
-
java中的hashCode
java的Object类带了hashcode方法,java库中的基本类型的包装类都实现了hashCode方法,我们自建的类如果想利用hashset或者hashmap存储时,最好也重写一下hashcode方法
-
hash冲突及其解决方案
-
hash表的时间复杂度分析
- hash冲突的其他解决方式
- 链地址法
- 二次hash
- 平凡探测法
- 线性探测
其实一般情况下,我们用链地址法已经足够满足我们所遇到的使用场景