Map介绍
- 将键映射到值的对象。一个映射不能包含重复的键;每个键最多只能映射到一个值。
- 此接口取代 Dictionary 类,后者完全是一个抽象类,而不是一个接口。
- Map 接口提供三种collection 视图,允许以键集、值集或键-值映射关系集的形式查看某个映射的内容。
- 映射顺序 定义为迭代器在映射的 collection 视图上返回其元素的顺序。
- 某些映射实现可明确保证其顺序,如 TreeMap 类;
- 另一些映射实现则不保证顺序,如 HashMap 类。
- 定义:public interface Map<K,V>
Map 接口中的所有方法
void clear() // 从此映射中移除所有映射关系(可选操作)。
boolean containsKey(Object key) // 如果此映射包含指定键的映射关系,则返回 true。
boolean containsValue(Object value) // 如果此映射将一个或多个键映射到指定值,则返回 true。
Set<Map.Entry<K,V>> entrySet() // 返回此映射中包含的映射关系的 Set 视图。
boolean equals(Object o) // 比较指定的对象与此映射是否相等。
V get(Object key) // 返回指定键所映射的值;如果此映射不包含该键的映射关系,则返回 null。
int hashCode() // 返回此映射的哈希码值。
boolean isEmpty() // 如果此映射未包含键-值映射关系,则返回 true。
Set<K> keySet() // 返回此映射中包含的键的 Set 视图。
V put(K key, V value) // 将指定的值与此映射中的指定键关联(可选操作)。
void putAll(Map<? extends K,? extends V> m) // 从指定映射中将所有映射关系复制到此映射中(可选操作)。
V remove(Object key) // 如果存在一个键的映射关系,则将其从此映射中移除(可选操作)。
int size() // 返回此映射中的键-值映射关系数。
Collection<V> values() // 返回此映射中包含的值的 Collection 视图。
Map 接口中的方法使用样例
public static void main(String[] args) {
Map<String, String> map = new HashMap<>();
map.put("zhangsan", "name-001");
map.put("lisi", "name-002");
map.put("wangwu", "name-003");
map.put("zhaoliu", "name-004");
System.out.println(map.get("lisi")); // 获取指定键的值, 键不存在返回 null
System.out.println(map.containsKey("wangwu")); // 检查是否存在指定键
System.out.println(map.containsValue("name-004")); // 检查是否存在指定值
System.out.println("map.size() before remove() : " + map.size());
// remove()方法会删除指定的键值对,并返回该值; 若不存在指定键,返回 null;
System.out.println("after remove() : " + map.remove("lisi"));
System.out.println("map.size() after remove() : " + map.size());
// 将所有内容输出: 获取EntrySet方式
Set<Entry<String, String>> entrySet = map.entrySet();
for (Iterator<Map.Entry<String, String>> iterator = entrySet.iterator(); iterator.hasNext();) {
Entry<String, String> entry = (Entry<String, String>) iterator.next();
System.out.println(entry.getKey() + ":::" + entry.getValue());
}
// 将所有内容输出: 获取keySet方式
Set<String> keySet = map.keySet(); // 返回所有的键的集合
for (Iterator<String> iterator = keySet.iterator(); iterator.hasNext();) {
String value = iterator.next();
System.out.println(value);
}
// 返回所有的值得集合
Collection<String> values = map.values();
System.out.println(values);
}
Map 接口的实现类
Map<K, V>
|--HashMap
|--Hashtable
|--TreeMap