目录
5. containsValue(Object value)
13. getOrDefault(Object key, V defaultValue)
15. replace(K key, V oldValue, V newValue)
16. computeIfAbsent(K key, Function mappingFunction)
17. computeIfPresent(K key, BiFunction remappingFunction)
18. compute(K key, BiFunction remappingFunction)
19. merge(K key, V value, BiFunction remappingFunction)
Java中的HashMap
类实现了Map
接口,提供了键值对映射的存储结构。这使得数据的存取可以通过键(Key)来高效地进行。HashMap
位于java.util
包中。以下是HashMap
类中一些常用方法的使用说明:
1. put(K key, V value)
- 描述:将指定的值与此映射中的指定键关联。
- 使用:
hashMap.put(key, value);
2. get(Object key)
- 描述:返回指定键所映射的值,如果映射不包含该键的映射关系,则返回null。
- 使用:
V value = hashMap.get(key);
3. remove(Object key)
- 描述:如果存在一个键的映射关系,则将其从映射中移除。
- 使用:
hashMap.remove(key);
4. containsKey(Object key)
- 描述:如果此映射包含指定键的映射关系,则返回true。
- 使用:
boolean exists = hashMap.containsKey(key);
5. containsValue(Object value)
- 描述:如果此映射将一个或多个键映射到指定值,则返回true。
- 使用:
boolean exists = hashMap.containsValue(value);
6. clear()
- 描述:从此映射中移除所有的映射关系。
- 使用:
hashMap.clear();
7. size()
- 描述:返回此映射中的键值对的数量。
- 使用:
int size = hashMap.size();
8. isEmpty()
- 描述:如果此映射不包含键值对的映射关系,则返回true。
- 使用:
boolean isEmpty = hashMap.isEmpty();
9. keySet()
- 描述:返回此映射中包含的键的
Set
视图。 - 使用:
Set<K> keySet = hashMap.keySet();
10. values()
- 描述:返回此映射中包含的值的
Collection
视图。 - 使用:
Collection<V> values = hashMap.values();
11. entrySet()
- 描述:返回此映射中包含的映射关系的
Set
视图。 - 使用:
Set<Map.Entry<K, V>> entrySet = hashMap.entrySet();
12. putAll(Map<? extends K, ? extends V> m)
- 描述:将指定映射的所有映射关系复制到此映射中。
- 使用:
hashMap.putAll(anotherMap);
13. getOrDefault(Object key, V defaultValue)
- 描述:返回指定键所映射的值,如果此映射不包含该键的映射关系,则返回defaultValue。
- 使用:
V value = hashMap.getOrDefault(key, defaultValue);
14. replace(K key, V value)
- 描述:只有当键已经存在于映射中时,用指定值替换键所映射的值。
- 使用:
hashMap.replace(key, value);
15. replace(K key, V oldValue, V newValue)
- 描述:只有当键已经存在于映射中且当前映射到oldValue时,才用newValue替换oldValue。
- 使用:
hashMap.replace(key, oldValue, newValue);
16. computeIfAbsent(K key, Function<? super K, ? extends V> mappingFunction)
- 描述:如果指定的键尚未与值关联(或映射到null),则尝试使用给定的映射函数计算其值,并进入此映射。
- 使用:
hashMap.computeIfAbsent(key, k -> newValue);
17. computeIfPresent(K key, BiFunction<? super K, ? super V, ? extends V> remappingFunction)
- 描述:如果指定键的值存在且非null,则尝试计算新的映射值。
- 使用:
hashMap.computeIfPresent(key, (k, v) -> newValue);
18. compute(K key, BiFunction<? super K, ? super V, ? extends V> remappingFunction)
- 描述:尝试计算指定键及其当前映射值的新映射。
- 使用:
hashMap.compute(key, (k, v) -> newValue);
19. merge(K key, V value, BiFunction<? super V, ? super V, ? extends V> remappingFunction)
- 描述:如果指定键找不到或其值为null,将其与给定值关联;否则执行remappingFunction并重新关联。
- 使用:
hashMap.merge(key, value, (v1, v2) -> newValue);
结论
HashMap
类提供了丰富的方法来操作键值对数据,包括添加、删除、修改、查询等。它是基于哈希表的Map接口的非同步实现,不保证映射的顺序;特别是它不保证顺序会随着时间的推移保持不变。在实际应用中,根据需求合理选择和使用这些方法,可以提高数据处理的效率和便捷性。