iOS Dev

C语言实现HashMap

2016-06-19  本文已影响1732人  燚随风

Hash,一般翻译音译为"哈希"的,就是把任意长度的输入(又叫做预映射, pre-image),通过散列算法,变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,而不可能从散列值来唯一的确定输入值。

简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。

数据结构对比

MAP.jpg

上图表示,Map类族中主要实现类有Hashtable,HashMap,LinkedHashMap,TreeMap。在Hashtable子类中,还有Properties类的实现。

HashMap的数据结构就是结合了数组和链表来实现的一种Hash表

HashMaptable.png

参考资料:
各种字符串Hash函数比较
HashMap实现原理分析
HashMap
算法与数据结构(2),Map

上一篇 下一篇

猜你喜欢

热点阅读