Hashtable是原始java.util的一部分,是Dictionary的具体实现。
但是,Java 2重新设计了Hashtable,以便它也实现Map接口。因此,哈希表现在已集成到集合框架中。它类似于HashMap,担它是线程安全的synchronized。
以下是HashTable类提供的构造函数的列表。
Sr.No | Constructor & Remark |
---|---|
1 | Hashtable() 这是化Hashtable类的哈希表的默认构造函数。 |
2 | Hashtable(int size) 此构造函数接受一个整数参数,并创建一个具有由整数值大小指定的初始大小的哈希表。 |
3 | Hashtable(int size,float fillRatio) 这将创建一个哈希表,该哈希表的初始大小由size指定,填充率由fillRatio指定。此比率必须在0.0到1.0之间,并且它确定哈希表在向上调整大小之前可以有多满。 |
4 | Hashtable(Map < ? extends K, ? extends V > t) 这将使用给定的映射构造一个Hashtable。 |
除了Map接口定义的方法外,Hashtable还定义了以下方法-
Sr.No | Method & Remark |
---|---|
1 | void clear() 重置并清空哈希表。 |
2 | Object clone() 返回调用对象的副本。 |
3 | boolean contains(Object value) 如果哈希表中存在等于该值的值,则返回true。如果找不到该值,则返回false。 |
4 | boolean containsKey(Object key) 如果哈希表中存在与该键相同的键,则返回true。如果找不到键,则返回false。 |
5 | boolean containsValue(Object value) 如果哈希表中存在等于该值的值,则返回true。如果找不到该值,则返回false。 |
6 | Enumeration elements() 返回哈希表中包含的值的枚举。 |
7 | Object get(Object key) 返回包含与键关联的值的对象。如果键不在哈希表中,则返回空对象。 |
8 | boolean isEmpty() 如果哈希表为空,则返回true |
9 | Enumeration keys() 返回哈希表中包含的键的枚举。 |
10 | Object put(Object key,Object value) 在哈希表中插入一个键和一个值。如果键尚未在哈希表中,则返回null;否则返回null。 |
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[]) { //创建哈希映射 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)); //在哈希表中显示所有余额。 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
祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)