一、Map概述
Map 是一种键-值对(key-value)集合,Map 集合中的每一个元素都包含一个键对象和一个值对象。其中,键对象不允许重复,而值对象可以重复,并且值对象还可以是 Map 类型的,就如同数组中的元素还可以是数组。
Map 接口主要有两个实现类:HashMap 类和 TreeMap 类。
方法名称 | 说明 |
---|---|
V get(Object key) | 返回 Map 集合中指定键对象所对应的值。V 表示值的数据类型 |
V put(K key, V value) | 向 Map 集合中添加键-值对,返回 key 以前对应的 value,如果没有, 则返回 null |
V remove(Object key) | 从 Map 集合中删除 key 对应的键-值对,返回 key 对应的 value,如 果没有,则返回null |
Set entrySet() | 返回 Map 集合中所有键-值对的 Set 集合,此 Set 集合中元素的数据 类型为 Map.Entry |
Collection<V> values() | 返回 Map 集合中所有值 |
Set keySet() | 返回 Map 集合中所有键对象的 Set 集合 |
二、Map四种遍历方法
Map<String, String> map = new HashMap<String, String>();
1、先通过map对象调用keySet()方法,返回map中所有key的set集合,再根据set集合里面的key,调用get(Object key)方法,获取到key对应的value值。(二次取值)
for (String key : map.keySet()) {
System.out.println("key= "+ key + " and value= " + map.get(key));
}
2、初始化一个遍历set集合的迭代器,再使用迭代器遍历这个包含所有map键值对的set集合。( Iterator迭代器遍历循环Map.entrySet().iterator() )
Iterator<Map.Entry<String, String>> it = map.entrySet().iterator();
while (it.hasNext()) {
Map.Entry<String, String> entry = it.next();
System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());
}
3、获取包含map里面所有键值对的set集合(增强for循环,即foreach)
for (Map.Entry<String, String> entry : map.entrySet()) {
System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());
}
4、只遍历其value(只能遍历value)
for (String v : map.values()) {
System.out.println("value= " + v);
}