云莉的技术专题

哈希表、映射、集合

2020-03-28  本文已影响0人  云莉6

哈希表基本概念

维基百科比较清楚,可以参考。我觉得可能最好跟着打字一遍,比读一遍能理解更多,往往太多字,很容易放弃阅读,或者晕头了,而打字的过程中会字字阅读从而思考更多内容:https://zh.wikipedia.org/wiki/%E5%93%88%E5%B8%8C%E8%A1%A8

哈希表也叫散列表,是根据关键码值(key value)而直接访问在内存储存位置的数据结构。它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做哈希函数(Hash Function),存放记录的数组叫做哈希表(或散列表)

工程实践

哈希函数 Hash Function

用来映射 key 存放到哈希表(数组)的位置,这个映射的函数叫做哈希函数。

哈希冲突 Hash Collisions

当两个不同的 key,通过哈希函数计算得出的存放位置相同,这个时候就产生了哈希冲突。

通常哈希函数会设计的很少碰到哈希碰撞,一旦发生碰撞,需要解决冲突。

解决冲突方法

Java 中解决冲突方法

产生冲突的三个因素

哈希表复杂度分析

Java code

Map, Set: interfaces

小技巧分享

复杂度分析

image.png
上一篇下一篇

猜你喜欢

热点阅读