在计算机科学中,关联数组,映射,符号表或词典是由(键,值)对的集合组成的抽象数据类型,因此每个可能的键在该集合中最多出现一次。请注意,字典也称为映射。
字典问题是经典的计算机科学问题:设计一种数据结构的任务,该数据结构在“搜索”,“删除”和“插入”操作期间维护一组数据。字典有许多不同类型的实现。
哈希表的实现
基于树的实施(自平衡和不平衡树)
基于列表的实现
字典不是万灵药,不应在每次获得机会时使用。它们在许多情况下很有用,但是在决定使用字典来解决问题之前,您需要牢记以下几点。
插入通常很慢,读取速度比树快。
使用它们进行快速查找,例如,缓存数据,索引数据库,符号表等。
当元素的顺序无关紧要时。
当所有元素键都是唯一的时。
字典通常具有定义明确的API。我们将实现一个非常基本的字典API,如下所示-
get():使用输入键获取元素
put():将键值对放入字典中
hasKey():检查键是否存在于字典中
delete():从字典中删除给定的键
clear():从字典中删除所有键/值对
keys():以数组形式返回所有键
values(): 以数组形式返回所有值