Map集合的两种遍历思路
第一种思路
获取Map集合中的所有键,放在一个Set集合中,遍历该Set集合,获取到每一个键,根据键值再来获取对应的值【根据键获取值】
-
获取Map集合中的所有键
Set keySet()
-
遍历Set集合的两种方法
- 迭代器
- 增强for循环
-
拿到每一个键后,获取对应的值
V get(K key)
-
代码示例:
import java.util.HashMap; import java.util.Map; import java.util.Set; public class Demo02_遍历1 { public static void main(String[] args) { Map<String,String> mp = new HashMap<>(); mp.put("qaz", "123"); mp.put("wsx", "234"); mp.put("edc", "345"); //System.out.println(mp); Set<String> set = mp.keySet(); for (String key : set) { String value = mp.get(key); System.out.println(key + "==>" + value); } } }
第二种思路
获取Map集合中所有键值对对象(Entry对象),把所有键值对对象存储在一个Set集合中.遍历Set集合.遍历的每一个元素就是一个键值对对象,通过调用键值对对象的getKey()获取key值,调用getValue()方法获取value值
-
根据Map集合获取存储所有键值对对象的Set集合.
Set<Map.Entry<K,V>> entrySet();
Map.Entry<K, V>格式说明:Entry是内部接口,外部接口以外访问: 只能是外部接口.内部接口
底层实现: 获取Map中的键值对封装到一个Entry对象中. 再把这一个一个Entry对象存储Set集合中.
-
遍历Set循环
- 迭代器
- 增强for循环
-
再次循环,获取键值对对象
- 调用键值对对象方法:
- getKey():获取键值对对象封装的key值
- getValue():获取键值对对象封装的value值
- 调用键值对对象方法:
-
示例代码:
import java.util.HashMap; import java.util.Map; import java.util.Map.Entry; import java.util.Set; public class Demo02_遍历2 { public static void main(String[] args) { Map<String,String> mp =new HashMap<>(); mp.put("qaz", "123"); mp.put("wsx", "234"); mp.put("edc", "456"); Set<Map.Entry<String, String>> set = mp.entrySet(); for (Entry<String, String> en : set) { System.out.println(en.getKey() + "==>" + en.getValue()); } } }