HashMap(一)基础入门

人盡茶涼 提交于 2020-02-13 10:58:13

1.数组的优势/劣势

在这里插入图片描述
数组的内存空间是连续的
特点:索引速度快
劣势:增加、删除数据时,浪费性能

2.链表的优势/劣势

在这里插入图片描述
链表不是连续的内存,每一块内存中有一个引用保存下一个内存的地址。
优势:增加、删除数据时,效率高
劣势:如果要访问最后一个元素,只能从头依次访问每一个内存,查询效率低

3.有没有一种方式整合两种数据的优势?

散列表。
在这里插入图片描述
整合了数组的快速索引,和链表的动态扩容

4.什么是哈希?

核心理论:Hash也称散列、哈希,基本理论就是把任意长度的输入,通过Hash算法变成固定长度的输出。
这个映射的规则就是对应的Hash算法,而原始数据映射后的二进制串就是哈希值。

Hash的特点:

  1. 从hash值不可以反向推导出原始的数据
  2. 输入的数据的微小变化会得到完全不同的hash值,相同的数据会得到相同的值
  3. 哈希算法的执行效率高效,长的文本也能快速计算出哈希值。
  4. hash算法的冲突概率要小

由于hash的原理是将输入空间的值映射成hash空间内,而hash值的空间远小于输入的空间。
根据抽屉原理,一定会在不同的输入被映射成相同输出情况。

抽屉原理:桌上有十个苹果 ,要把这十个苹果放到九个抽屉里,无论怎么放,我们会发现至少会有一个抽屉里面放不少于两个苹果。
这一现象就是我们所说的“抽屉原理”

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!