Java Hashtable类

Java Hashtable类

Hashtable是java.util的一部分,是Dictionary的具体实现。

然而,Java 2重新设计了Hashtable,使它也实现了Map接口。因此,Hashtable现在被整合到了集合框架中。它类似于HashMap,但是是同步的。

和HashMap一样,Hashtable将键/值对存储在哈希表中。当使用Hashtable时,您指定一个用作键的对象,以及您想要与该键关联的值。然后,将对键进行哈希处理,并将得到的哈希码用作值存储在表中的索引。

以下是Hashtable类提供的构造函数列表。

序号 构造函数和描述
1 Hashtable( ) 这是哈希表的默认构造函数,它实例化Hashtable类。
2 Hashtable(int size) 这个构造函数接受一个整数参数,并创建一个具有由整数值size指定的初始大小的哈希表。
3 Hashtable(int size, float fillRatio) 这创建了一个具有由大小指定的初始大小和由fillRatio指定的填充比率的哈希表。此比率必须介于0.0和1.0之间,并确定哈希表在重新调整大小之前可以有多满。
4 **Hashtable(Map < ? extends K, ? extends V > t) ** 这使用给定的映射构造一个Hashtable。

除了Map接口定义的方法之外,Hashtable还定义了以下方法:

序号 方法及描述
1 void clear( ) 重置并清空哈希表。
2 Object clone( ) 返回调用对象的副本。
3 boolean contains(Object value) 如果哈希表中存在与value相等的值,则返回true。如果找不到该值,则返回false。
4 boolean containsKey(Object key) 如果哈希表中存在与key相等的键,则返回true。如果找不到该键,则返回false。
5 boolean containsValue(Object value) 如果哈希表中存在与value相等的值,则返回true。如果找不到该值,则返回false。
6 Enumeration elements( ) 返回哈希表中包含的值的枚举。
7 Object get(Object key) 返回与key关联的值。如果哈希表中不存在该键,则返回空对象。
8 boolean isEmpty( ) 如果哈希表为空,则返回true;如果至少包含一个键,则返回false。
9 Enumeration keys( ) 返回哈希表中包含的键的枚举。
10 Object put(Object key, Object value) 将键和值插入哈希表。如果键尚未存在于哈希表中,则返回空;如果键已经存在于哈希表中,则返回与键关联的先前值。
11 void rehash( ) 增加哈希表的大小并重新哈希化所有键。
12 Object remove(Object key) 删除键及其值。返回与键关联的值。如果哈希表中不存在该键,则返回空对象。
13 int size( ) 返回哈希表中的条目数。
14 String toString( ) 返回哈希表的字符串表示形式。

示例

以下程序示例了此数据结构支持的几种方法。

import java.util.*;
public class HashTableDemo {

   public static void main(String args[]) {
      // Create a hash map
      Hashtable balance = new Hashtable();
      Enumeration names;
      String str;
      double bal;

      balance.put("Zara", new Double(3434.34));
      balance.put("Mahnaz", new Double(123.22));
      balance.put("Ayan", new Double(1378.00));
      balance.put("Daisy", new Double(99.22));
      balance.put("Qadir", new Double(-19.08));

      // Show all balances in hash table.
      names = balance.keys();

      while(names.hasMoreElements()) {
         str = (String) names.nextElement();
         System.out.println(str + ": " + balance.get(str));
      }        
      System.out.println();

      // Deposit 1,000 into Zara's account
      bal = ((Double)balance.get("Zara")).doubleValue();
      balance.put("Zara", new Double(bal + 1000));
      System.out.println("Zara's new balance: " + balance.get("Zara"));
   }
}

这将产生以下结果 −

输出

Qadir: -19.08
Zara: 3434.34
Mahnaz: 123.22
Daisy: 99.22
Ayan: 1378.0

Zara's new balance: 4434.34

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程