Java.util 包提供了一个实现哈希的 Hashtable 类表并将键映射到值。任何非空对象都可以用作键或值。要成功地在哈希表中存储和检索对象,用作键的对象必须实现 hashCode 方法和 equals 方法。如果要将许多条目放入哈希表中,则创建具有足够大容量的条目可能比让它根据需要执行自动重新哈希来扩大表更有效地插入条目。
类声明
java.util.Hashtable类的声明为:
public class Hashtable<K,V>
extends Dictionary<K,V>
implements Map<K,V>, Cloneable, Serializable
这里,K和V分别是容器维护的key和value的类型。
序号 | 构造函数和描述 |
---|
1. | Hashtable() 创建一个具有默认初始容量的空 Hashtable (11) 和负载系数 (0.75)。 |
2. | Hashtable(int initialCapacity) 创建一个具有指定初始容量和默认值的空 Hashtable负载系数(0.75)。 |
3. | Hashtable(int initialCapacity, float loadFactor) 创建一个具有指定初始值的空 Hashtable容量和指定的负载系数。 |
4. | Hashtable(Map<? extends K,? extends V> t) 创建一个新的哈希表具有与给定 Map 相同的映射。 |
java.util.Hashtable 类有许多方法,如下所示:
序号 | 方法和描述 |
---|
1. | void clear() 清除哈希表,使其不包含任何键。 |
2. | Object clone() 创建此哈希表的浅表副本。 |
3. | V compute(K key, BiFunction<? super K,? super V,? extends V> remappingFunction) 尝试计算指定键及其当前映射值的映射(如果没有当前映射,则为 null)。 |
4. | VcomputeIfAbsent(K key, Function<? super K,? extends V> mappingFunction) 如果指定的键尚未与值关联(或映射为 null),则尝试使用给定的映射函数计算其值并将其输入到此映射除非为空。 |
5. | VcomputeIfPresent(K key, BiFunction<? super K,? super V,? extends V> remappingFunction) 如果指定键的值存在且非空,则尝试计算给定键及其当前映射值的新映射。 |
6. | boolean contains(Object value) 如果某个键映射到此哈希表中的指定值,则返回 true。 |
7. | boolean containsKey(Object key) 如果指定的对象是此哈希表中的键,则返回 true。 |
8. | boolean containsValue(Object value) 如果此哈希表将一个或多个键映射到该值,则返回 true。 |
9. | Enumeration<V> elements() 返回此哈希表中值的枚举。 |
10。 | Set<Map.Entry<K,V>> EntrySet() 返回此映射中包含的映射的集合视图。 |
11. | boolean equals(Object obj) 根据 Map 接口中的定义,比较指定的 Object 与此 Map 是否相等。 |
12。 | void forEach(BiConsumer<? super K, ? super V> action) 对此映射中的每个条目执行给定的操作,直到所有条目都已处理完毕或该操作引发异常。 |
13. | V get(Object key) 返回指定键映射到的值,如果此映射不包含该键的映射,则返回 null。 |
14. | V getOrDefault(Object key,V defaultValue ) 返回指定键映射到的值,如果此映射不包含该键的映射,则返回 defaultValue。 |
15。 | int hashCode() 根据 Map 接口中的定义返回此 Map 的哈希码值。 |
16。 | boolean isEmpty() 检查哈希表是否没有将键映射到值。 |
17。 | Enumeration<K> keys() 返回此哈希表中键的枚举。 |
18。 | Set<K> keySet() 返回此映射中包含的键的集合视图。 |
19. | V 合并(K key,V value, BiFunction<? super V,? super V,? extends V> remappingFunction) 如果指定的键尚未与值关联或与 null 关联,则将其与给定的非 null 值关联。 |
20。 | V put(K key,V value) 将指定的键映射到哈希表中的指定的值。 |
21。 | void putAll(Map<? extends K, ? extends V> t) 将指定映射中的所有映射复制到此哈希表。 |
22。 | V putIfAbsent(K key,V value) 如果指定的键尚未与值关联(或映射为 null),则将其与给定值关联并返回 null,否则返回当前值。 |
23。 | protected void rehash() 增加该哈希表的容量并在内部重新组织该哈希表,以便更有效地容纳和访问其条目。 |
24。 | V reove(Object key) 从此哈希表中删除键(及其相应的值)。 |
25。 | boolean remove(Object key,Object value) 仅当指定键当前映射到指定值时才删除该条目。 |
26。 | V replace(K key,V value) 仅当指定键当前映射到某个值时才替换该条目。 |
27。 | boolean replace(K key, V oldValue, V newValue) 仅当当前映射到指定值时才替换指定键的条目。 |
28。 | void ReplaceAll(BiFunction<? super K, ? super V,? extends V> function) 用在该条目上调用给定函数的结果替换每个条目的值,直到所有条目都已处理完毕或该函数引发异常。 |
29。 | int size() 返回哈希表中键的数量。 |
30。 | String toString() 以一组条目的形式返回此 Hashtable 对象的字符串表示形式,用大括号括起来并用","(逗号和空格)分隔。 |
31。 | Collection<V> values() 返回此哈希表中包含的值的集合视图。 |
继承的方法
该类继承了以下类的方法:
- java.lang.Object
- java.util.Dictionary<K,V>