概述
基于J11,该类已经淘汰,如果使用线程安全的则用 ConcurrentHashMap
,用线程不安全的则使用 HashMap
。仅与HashMap进行比较
结构以及依赖关系
HashTable 的结构如下图
当遇到有同样 Hash 值的情况,会通过链表来解决冲突问题(链接法,通过链表解决冲突问题)。
链接法会随着冲突的增多导致查询时间越来越慢。会出现一种恶劣的情况,当散列算法特别差时;元素总数 n和某个槽位数 m 中的 k 相等,如下图所示
在这种情况下,查找的时间为 (O(1+a)) 其中 (O(1)) 为hash
通过下图可以得知 Hashtable 与其他类的关系
classDiagram direction BT class Cloneable { <
实际上,Hashtable中的每个元素都是一个 Map.Entry<k,v></k,v>
, Entry
是 Map
的集合形式 用来遍历 Map
。Hashtable实现了该接口,Hashtable就是一个集合,不过存储的是一个一个链表。