1、定义:Hash表是一种重要的数据结构。它通过将关键字通过hash函数映射到一个内存区,通过关键字就可以直接访问该节点的值。其查找的时间复杂度为O(1)
Hash表也叫做散列表。它通过将关键字的值(key)通过hash函数映射到内存区中,然后在响应的内存区中可以存入相应的值(value),也就是我们常说的键值对(key-value)。
在java中,hash表示存储在数组中的。设hash表的地址空间大小为m(比如有一个大小为n的数组),待存入的元素个数为m,即要将m的元素放入到大小为n的数组中。
2、映射机制
线性映射,
3、hash冲突问题
(1)线性再探测法探测法
(2)伪随机探测法
(3)链地址法:将具有相同hash地址的元素存在一个链表中,然后再hash表中存入的是这个链表的头节点。这种方法适用于hash表中元素个数不确定的情况。并且这种方法的有点是插入和删除操作简单方便。
实例应用: