Hashtable类

  Hashtable是原始的java.util的一部分,是一个Dictionary具体的实现。然而Java 2重构的Hashtable实现了Map接口,因此Hashtable现在集成到了集合框架中。它和HashMap类很相似,但是它支持同步。
  像HashMap一样,Hashtable在哈希表中存储键值对。当使用一个哈希表时,要指定用作键的对象,以及要链接到该键的值。然后该键经过哈希处理,所得到的散列码被用作存储在该表中值的索引。
  Hashtable定义了四个构造方法,第一个是默认构造方法:

Hashtable();

第二个构造函数创建指定大小的哈希表:

Hashtable(int size);

第三个构造方法创建了一个指定大小的哈希表,并且通过fillRatio指定填充比例。填充比例必须介于0.01.0之间,它决定了哈希表在重新调整大小之前的充满程度:

Hashtable(int size, float fillRatio);

第四个构造方法创建了一个以M中元素为初始化元素的哈希表。哈希表的容量被设置为M的两倍:

Hashtable(Map m);

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

  • void clear():将此哈希表清空,使其不包含任何键。
  • Object clone():创建此哈希表的浅表副本。
  • boolean contains(Object value):测试此映射表中是否存在与指定值关联的键。
  • boolean containsKey(Object key):测试指定对象是否为此哈希表中的键。
  • boolean containsValue(Object value):如果此Hashtable将一个或多个键映射到此值,则返回true
  • Enumeration elements():返回此哈希表中的值的枚举。
  • Object get(Object key):返回指定键所映射到的值,如果此映射不包含此键的映射,则返回null
  • boolean isEmpty():测试此哈希表是否没有键映射到值。
  • Enumeration keys():返回此哈希表中的键的枚举。
  • Object put(Object key, Object value):将指定key映射到此哈希表中的指定value
  • void rehash():增加此哈希表的容量,并在内部对其进行重组,以便更有效地容纳和访问其元素。
  • Object remove(Object key):从哈希表中移除该键及其相应的值。
  • int size():返回此哈希表中的键的数量。
  • String toString():返回此Hashtable对象的字符串表示形式,其形式为ASCII字符,(空格)(逗号加空格)分隔开的、括在括号中的一组条目。
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", 3434.34);
        balance.put("Mahnaz", 123.22);
        balance.put("Ayan", 1378.00);
        balance.put("Daisy", 99.22);
        balance.put("Qadir", -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", 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
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值