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