![47a7df791079e7da06f76daf1f391ffc.png](https://i-blog.csdnimg.cn/blog_migrate/870f77a9684b0152f658346794e59479.jpeg)
映射表示包含的集合键值映射。
Map是一个集合,其中每个元素表示一个键值对作为 ;. 对也称为映射中的条目。键和值必须是引用类型。
映射由 Map 接口的实例表示,它不是继承自 Collection 接口。
映射不允许任何重复的键。每个键映射到正好一个值。值不必是唯一的。 两个键可以映射到相同的值。
Map 允许最多一个空值键和多个空值作为其值。
Map接口中的方法可以根据其执行的操作分为以下四类:
- 基本操作
- 批量操作
- 查看操作
- 比较操作
基本操作
基本方法在Map上执行基本操作,
- 将一个条目放入映射
- 获取指定键的值
- 获取条目的数量
- 删除条目
- 检查Map是否为空。
本类别中的方法示例如下:
int size()boolean isEmpty()boolean containsKey (Object key)boolean containsValue (Object value)V get(Object key)V getOrDefault(Object key, V defaultValue)V put(K key, V value)V putIfAbsent(K key, V value)V remove (Object key)boolean remove(Object key, Object value)boolean replace(K key, V oldValue, V newValue)
批量操作
映射批量操作在映射上执行批量操作,例如将条目复制到另一个Map或从映射中删除所有条目。
本类别中的方法示例如下:
void clear()void putAll (Map extends K, ? extends V> t)void replaceAll(BiFunction super K,? super V,? extends V> function)
查看操作
视图操作包含三种方法。我们可以从映射中查看以下集合。
- 所有键在一个Map中作为一个Set,
- 所有的值作为Collection,
- 所有对作为Set。
本类别中的方法示例如下:
Set keySet()Collection values()Set>entrySet()
所有键和所有< key,value> 对在映射中始终是唯一的并作为设置视图返回。
由于映射可能包含重复值,它返回一个 Collection 视图的值。
比较操作
比较操作方法处理比较两个图的相等性。本类别中的方法示例如下:
boolean equals (Object o)int hashCode()
实施
HashMap , LinkedHashMap ,和 WeakHashMap 是三个实现类用于 Map 界面。
HashMap 允许一个 null 值作为键和多个空值作为值。
以下代码演示了如何创建和使用 Map 接口从它的实现类 HashMap 。HashMap不保证Map中条目的任何特定的迭代顺序。
下面的代码从HashMap创建一个Map
// Create a map using HashMapMap map = new HashMap<>();map.put("CSS