Java HashMap 类

Hashtable 模型并实现 Map 接口。此实现提供了所有可选的映射操作,并允许空值和空键。 HashMap 类大致相当于 Hashtable,只不过它是不同步的并且允许 null。此类不保证映射的顺序。它不保证顺序随着时间的推移保持不变。

类声明

java.util.HashMap 类的声明为:

public class HashMap<K,V>
  extends AbstractMap<K,V>
    implements Map<K,V>, Cloneable, Serializable 

这里, K 和 V 分别是容器维护的键和值的类型。

类构造函数

序号构造函数和描述
1.HashMap()
创建一个具有默认初始容量 (16) 和默认负载因子 (0.75) 的空 HashMap。
2.HashMap(int initialCapacity)
创建一个空的HashMap,具有指定的初始容量和默认负载系数 (0.75)。
3.HashMap(int initialCapacity, float loadFactor)
创建一个具有指定初始值的空 HashMap容量和负载系数。
4.HashMap(Map<? extends K,? extends V> m)
创建一个新的 HashMap与指定的 Map 具有相同的映射。

java.util.HashMap 方法

java.util.HashMap 类有许多方法,如下所示:

成员方法

序号方法和描述
1.void clear()
清除map的所有映射。
2.Object clone()
返回此 HashMap 实例的浅表副本:键和值本身不会被克隆。
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 containsKey(Object key)
如果此映射包含指定键的映射,则返回 true。
7.boolean containsValue(Object value)
如果此映射将一个或多个键映射到指定值,则返回 true。
8.Set<Map.Entry<K,V>> EntrySet()
返回此映射中包含的映射的集合视图。
9.void forEach(BiConsumer<? super K, ? super V> action)
对此映射中的每个条目执行给定的操作,直到所有条目都已处理完毕或该操作引发异常。
10.V get(Object key)
返回指定键映射到的值,如果此映射不包含该键的映射,则返回 null。
11.V getOrDefault(Object key,V defaultValue )
返回指定键映射到的值,如果此映射不包含该键的映射,则返回 defaultValue。
12。boolean isEmpty()
检查map是否为空。
13.Set<K> keySet()
返回此映射中包含的键的集合视图。
14.V 合并(K key,V value, BiFunction<? super V,? super V,? extends V> remappingFunction)
如果指定的键尚未与值关联或与 null 关联,则将其与给定的非 null 值关联。
15。V put(K key,V value)
将指定的值与映射中的指定的键关联起来。
16。void putAll(Map<? extends K, ? extends V> m)
将指定映射中的所有映射复制到此映射。
17.V putIfAbsent(K key,V value)
如果指定的键尚未与值关联(或映射到 null),则返回 null 并将指定的键与给定值关联,否则返回当前值。
18.V remove(Object key)
从此映射中删除指定键的映射(如果存在)。
19.boolean remove(Object key,Object value)
仅当指定键当前映射到指定值时才删除该条目。
20。V replace(K key,V value)
仅当指定键当前映射到某个值时才替换该条目。
21。boolean replace(K key, V oldValue, V newValue)
仅当当前映射到指定值时才替换指定键的条目。
22。void ReplaceAll(BiFunction<? super K, ? super V,? extends V> function)
用在该条目上调用给定函数的结果替换每个条目的值,直到所有条目都已处理完毕或该函数引发异常。
23。int size()
返回映射中键值对的数量。
24。Collection<V> values()
返回此映射中包含的值的集合视图。

继承的方法

该类继承了以下类的方法:

  • java.lang.Object
  • java.util.AbstractMap<K,V>