关于Hash的作用
大家来说说就是设计出哈希函数的目的是什么,除了节约空间还有什么作用? 因为可以通过array,map或direct-address table
hash
------解决方案--------------------通过Hash值可以初步定位元素在数组中的位置,提高查询效率
------解决方案--------------------
Hash与Map并不矛盾,Map有多种存储方式,使用TreeMap,HashMap, LinkedHashMap等。
Hash是用一个Key快速计算出存储位置,记忆的是Key,而Array需要记忆的是下标0,1,2,3,....,完全不是一个概念。
------解决方案--------------------hash的产生有这样一种背景——有些数据本身是无法排序的(如图像),有些数据是很难比较的(如图像)。如果数据本身是无法排序的,就不能对它们进行比较查找。如果数据是很难比较的,即使采用折半查找,要比较的次数也是非常多的。因此,哈希查找并不查找数据本身,而是先将数据映射为一个整数(它的哈希值),并将哈希值相同的数据存放在同一个位置一即以哈希值为索引构造一个数组。
在大学的数据结构教材内,貌似说了设计hash的原因。
------解决方案--------------------
map只是一种K-V的数据结构,懂?它最终落地还是要在一个一维数组中(这里用一维数组全权代理内容了)
你map是可以通过 key 来找到value 但除了 hashMap外 其他的不是用hash的map 来定位key的过程依然是个一个遍历,,即使hashmap在hash冲突的时候也会出现小范围的遍历