Java 教程

Java 控制语句

面向对象编程

Java 内置类

Java 文件处理

Java 错误和异常

Java 多线程

Java 同步

Java 网络

Java 集合

Java 接口

Java 数据结构

Java 集合算法

高级 Java

Java 杂项

Java API 和框架

Java 类参考

Java 有用资源

Java - Hashtable 类



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

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

与 HashMap 类似,Hashtable 将键/值对存储在哈希表中。使用 Hashtable 时,您指定用作键的对象以及您希望链接到该键的值。然后对键进行哈希处理,并将生成的哈希码用作在表中存储值的索引。

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

序号 构造函数和描述
1

Hashtable( )

这是哈希表的默认构造函数,它实例化 Hashtable 类。

2

Hashtable(int size)

此构造函数接受一个整数参数,并创建一个哈希表,该哈希表具有由整数 value size 指定的初始大小。

3

Hashtable(int size, float fillRatio)

这将创建一个哈希表,该哈希表具有由 size 指定的初始大小和由 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 关联的值的对象。如果 key 不在哈希表中,则返回 null 对象。

8

boolean isEmpty( )

如果哈希表为空,则返回 true;如果它包含至少一个键,则返回 false。

9

Enumeration keys( )

返回哈希表中包含的键的枚举。

10

Object put(Object key, Object value)

将键和值插入哈希表。如果 key 不在哈希表中,则返回 null;如果 key 已经在哈希表中,则返回与 key 关联的先前值。

11

void rehash( )

增加哈希表的大小并重新散列其所有键。

12

Object remove(Object key)

删除键及其值。返回与键关联的值。如果 key 不在哈希表中,则返回 null 对象。

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
java_data_structures.htm
广告

© . All rights reserved.