一、字典
字典(dictionary)是一些元素的集合。
字典的特点:①字典是通过见制度来保存的
②字典的主要特点是一一对应的关系.、
③字典里面的键不允许重复,但是值可以,key也是无序的
二、字典和映射的关系:
有些编程语言中称这种映射关系为字典,因为它确实和生活中的字典比较相似.(比如Swift中Dictionary, Python中的dict)
有些编程语言中称这种映射关系为Map,注意Map在这里不要翻译成地图,而是翻译成映射.(比如Java中就有HashMap&TreeMap等)
三、字典和数组:
字典和数组对比的话,字典可以非常方便的通过key来搜索对应的value, key可以包含特殊含义,,也更容易被人们记住字典和对象:
很多编程语言(比如Java)中对字典和对象区分比较明显,对象通常是一种在编译期就确定下来的结构,不可以动态的添加或者删除属性.而字典通常会使用类似于哈希表的数据结构去实现一种可以动态的添加数据的结构.
但是在JavaScript中,似乎对象本身就是一种字典.所有在早期的JavaScript中,没有字典这种数据类型,因为你完全可以使用对象去代替.
四、哈希表
哈希表通常是基于数组进行实现的,但是相对于数组,它也很多的优势:它可以提供非常快速的插入-删除-查找操作
无论多少数据,插入和删除值需要接近常量的时间:即O(1)的时间级.实际上,只需要几个机器指令即可完成口哈希表的速度比树还要快,基本可以瞬间查找到想要的元素
哈希表相对于树来说编码要容易很多.
哈希表相对于数组的一些不足:
哈希表中的数据是没有顺序的,所以不能以一种固定的方式(比如从小到大)来遍历其中的元素.口通常情况下,哈希表中的key是不允许重复的,不能放置相同的key,用于保存不同的元素.



