字典
字典也称作映射、符号表或关联数组,字典经常用来保存对象的引用地址
1 | function defaultToString(item) { |
散列表
HashTable 类,也叫 HashMap 类,它是 Dictionary 类的一种散列表实现方式。
1 | class HashTable { |
处理散列表中的冲突
不同的值在散列表中对应相同位置的时候,我们称其为冲突。
冲突解决方法:
- 分离链接
- 线性探查
- 双散列法
分离链接
分离链接法包括为散列表的每一个位置创建一个链表并将元素存储在里面。
它是解决冲突的最简单的方法,但是在 HashTable 实例之外还需要额外的存储空间。
1 | class HashTableSeparateChaining { |
线性探查
线性探查:它处理冲突的方法是将元素直接存储到表中,而不是在单独的数据结构中。
当想向表中某个位置添加一个新元素的时候,如果索引为 position 的位置已经被占据了,就尝试 position+1 的位置。如果 position+1 的位置也被占据了,就尝试 position+2 的位 置,以此类推,直到在散列表中找到一个空闲的位置。
1 | class HashTableLinearProbing { |