多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
# java 中的`Hashtable` > 原文: [https://beginnersbook.com/2014/07/hashtable-in-java-with-example/](https://beginnersbook.com/2014/07/hashtable-in-java-with-example/) 该类实现了一个哈希表,它将键映射到值。任何非`null`对象都可以用作键或值。`Hashtable`类似于[`HashMap`](https://beginnersbook.com/2013/12/hashmap-in-java-with-example/),但它是同步的。`HashMap`和`Hashtable`类之间几乎没有什么区别,你可以在以下网址详细阅读:[`HashMap`和`Hashtable`](https://beginnersbook.com/2014/06/difference-between-hashmap-and-hashtable/)之间的区别。 在本教程中,我们将了解如何创建`Hashtable`,如何填充其条目,然后我们将学习如何使用`Enumeration`显示其键值对。在本文的最后,我们将看到`Hashtable`类的`Hashtable`教程和方法。 #### 示例 ```java import java.util.Hashtable; import java.util.Enumeration; public class HashtableExample { public static void main(String[] args) { Enumeration names; String key; // Creating a Hashtable Hashtable<String, String> hashtable = new Hashtable<String, String>(); // Adding Key and Value pairs to Hashtable hashtable.put("Key1","Chaitanya"); hashtable.put("Key2","Ajeet"); hashtable.put("Key3","Peter"); hashtable.put("Key4","Ricky"); hashtable.put("Key5","Mona"); names = hashtable.keys(); while(names.hasMoreElements()) { key = (String) names.nextElement(); System.out.println("Key: " +key+ " & Value: " + hashtable.get(key)); } } } ``` **输出:** ```java Key: Key4 & Value: Ricky Key: Key3 & Value: Peter Key: Key2 & Value: Ajeet Key: Key1 & Value: Chaitanya Key: Key5 & Value: Mona ``` #### `Hashtable`教程 * [`Hashtable`示例](https://beginnersbook.com/2014/07/hashtable-in-java-with-example/ "Hashtable in java with example") * [排序`Hashtable`](https://beginnersbook.com/2014/06/how-to-sort-hashtable-in-java/ "How to sort Hashtable in java") * [`Hashtable Iterator`示例](https://beginnersbook.com/2014/07/hashtable-iterator-example-java/ "Hashtable Iterator example – Java") * [检查`Hashtable`中的键值是否存在](https://beginnersbook.com/2014/07/check-key-value-existence-in-hashtable-example-java/) * [从`Hashtable`中删除映射](https://beginnersbook.com/2014/07/remove-mapping-from-hashtable-example-java/) * [从`Hashtable`中删除所有映射](https://beginnersbook.com/2014/07/remove-all-mappings-from-hashtable-example-java/) * [获取`Hashtable`的大小](https://beginnersbook.com/2014/07/get-size-of-hashtable-example-in-java/) * [`Hashtable` vs `HashMap`](https://beginnersbook.com/2014/06/difference-between-hashmap-and-hashtable/) #### `Hashtable`类的方法: 1)`void clear()`:从`Hashtable`中删除所有键值映射并使其为空。清除此哈希表,使其不包含任何键。 2)`Object clone()`:创建此哈希表的浅表副本。复制哈希表本身的所有结构,但不克隆键和值。这是一项相对昂贵的操作。 3)`boolean contains(Object value)`:测试某个键是否映射到此哈希表中的指定值。此操作比`containsKey`方法更昂贵。 请注意,此方法的功能与`containsValue`相同(它是集合框架中`Map`接口的一部分)。 4)`boolean isEmpty()`:测试此哈希表是否将键没有映射到值。 5)`Enumeration keys()`:返回哈希表中包含的键的枚举。 6)`Object put(Object key, Object value)`:将指定的键映射到此哈希表中的指定值。 7)`void rehash()`:增加哈希表的大小并重新哈希其所有键。 8)`Object remove(Object key)`:从该哈希表中删除键(及其对应的值)。 9)`int size()`:返回 Hashtable 中存在的键值映射的数量。 10)`String toString()`:返回哈希表的等效字符串。 11)`boolean containsKey(Object key)`:测试指定的对象是否是此哈希表中的键。 12)boolean containsValue(Object value):测试指定的对象是否为此哈希表中的值。如果哈希表中存在某个等于`value`的值,则返回`true`。如果未找到该值,则返回`false`。 13)`Enumeration elements()`:返回哈希表中包含的值的枚举。 14)`Object get(Object key)`:返回指定键映射到的值,如果此映射不包含键的映射,则返回`null`。 #### 参考: 1. [`Hashtable` javadoc](https://docs.oracle.com/javase/7/docs/api/java/util/Hashtable.html) 2. [`Enumeration` javadoc](https://docs.oracle.com/javase/7/docs/api/java/util/Enumeration.html)