Map 集合
-
Map用于保存具有映射关系的数据,因此Map集合里保存着两组值,一组值用于保存Map里的key,另外一组值用于保存 Map 里的 value,key 和 value 都可以是任意引用类型的数据。Map 的 key不允许重复,即同一个 Map 对象的任何两个 key 通过equals 方法比较总是返回 false。
-
key 和 value 之间存在单向一对一关系,即通过指定的 key,总能找到唯一的、确定的value。
-
从 Map 中取出数据时,只要给指定的 key,就可以取出对应的 value。
- 下列介绍下 Map 接口中定义如下方法
-
void clear() : 删除该 Map 对象中的所有 key-value 对
-
boolean containsKey(Object key):查询Map中是否包含指定的key,如果包含则返回 true。
-
boolean containsValue(Object value):查询 Map 中是否包含一个或多个value,如果包含则返回true。
-
Set entrySet(): 返回 Map 中包含的 key-value 对所组成的 Set 集合,每个集合元素都是 Map.Entry(Entry 是 Map 的内部类)对象。
-
Object get(Object key): 返回指定key所对应的value;如果此Map中不包含该key,则返回null。
-
boolean isEmpty(): 查询该Map是否为空 (即不包含任何 key-value 对),如果为空则返回true。
-
Set keySet(): 返回该Map中所有 key 组成的 Set 集合
-
Object put(Object key, Object value):添加一个key-value 对,如果当前 Map 中已有一个与该 key 相等的 key-value 对,则新的key-value 对会覆盖原来的 key-value 对。
-
void putAll(Map m): 将指定 Map 中的key-value 对复制到本 Map 中
-
Object remove(Object key) : 删除指定key所对应的key-value 对,**返回被删除key所关联的 value,如果该 key 不存在,则返回 null。
-
boolean remove(Object key, Object value):这是 Java 8 新增的方法,删除指定key、value所对应的key-value 对。如果从该Map中成功地删除该key-value对,该方法返回true,否false
-
int size() :返回该 Map 里的 key - value 对的个数
-
Collection values(): 返回该Map里所有value 组成的 Collection
- 下列介绍一下 Java 8 新增的几个方法(没有全部列出)
- void forEach(BiConsumer action):该方法遍历 key - value 对,通过该方法可以更简洁地遍历 Map 的 key-value 对。
- Object getOrDefault(Object key, V defaultValue): 获取指定 key 对应的 value 。如果该key不存在,则返回 defaultValue.
- Object replace(Object key, Object value):将Map中指定key 对应的 value 替换成新的 value。不同与 put ,如果尝试替换的 可以 在原 Map 中不存在,该方法不会添加 key-value 对,而是返回null。