一文读懂HashMap和HashTable的区别以及常见面试题(24)

\n

在java中与有两个类都提供了一个多种用途的hashTable机制 , 他们都可以将可以key和value结合起来构成键值对通过put(keyvalue)方法保存起来 , 然后通过get(key)方法获取相对应的value值 。

\n

HashTable

\n

一个是前面提到的HashMap , 还有一个就是马上要讲解的HashTable 。 对于HashTable而言 , 它在很大程度上和HashMap的实现差不多 , 如果我们对HashMap比较了解的话 , 对HashTable的认知会提高很大的帮助 。 他们两者之间只存在几点的不同 , 这个后面会阐述 。

\n

定义

\n

HashTable在Java中的定义如下:

public class Hashtable<KV>
   extends Dictionary<KV>
   implements Map<KV> Cloneable java.io.Serializable
     从中可以看出HashTable继承Dictionary类 , 实现Map接口 。 其中Dictionary类是任何可将键映射到相应值的类(如 Hashtable)的抽象父类 。 每个键和每个值都是一个对象 。 在任何一个 Dictionary 对象中 , 每个键至多与一个值相关联 。 Map是\"key-value键值对\"接口 。  HashTable采用\"拉链法\"实现哈希表 , 它定义了几个重要的参数:table、count、threshold、loadFactor、modCount 。

推荐阅读