Map集合遍历的三种方式
遍历Map集合的三种方式
- 键找值
- 键值对
- Lambda表达式
方式一 : 键找值
- 先获取Map集合的全部键的Set集合
- 遍历键的Set集合,然后通过键提取对应值
原理图
键找值涉及到的API
方法名称 | 说明 |
---|---|
Set keySet() | 获取所有键的集合 |
V get(Object key) | 根据键获取值 |
Map<String,Integer> map = new HashMap<>();map.put("华为",5999);map.put("荣耀",2999);map.put("小米",3999);map.put("苹果",7999);System.out.println(map);// 第一步,现获取Map集合的全部键的Set集合Set<String> keys = map.keySet();//遍历键的Set集合 通过键获取对应的值for (String key : keys) {int value = map.get(key);System.out.println(key+"---->"+value);}
方式二 : 键值对
- 先把Map集合转换成Set集合,Set集合中每个元素都是键值对实体类型
- 遍历Set集合,然后提取键以及提取值
原理图
键值对涉及到的API
方法名称 | 说明 |
---|---|
Set <Map.Entry<K,V>> entrySet() | 获取所有键值对对象的集合 |
K getKey() | 获得键 |
V getValue() | 获取值 |
//第一步 将Map集合里面的键值对作为整体 也就是作为键值对类型 通过entrySet方法提取到Set集合中Set<Map.Entry<String, Integer>> entries = map.entrySet();// Set<Map.Entry<String, Integer>> entries = [(华为=5999),(荣耀=2999),(小米=3999),(苹果=7999)]//第二步:通过foreach循环 , 遍历提取到的Set集合 , 分别提取键和值for (Map.Entry<String, Integer> entry : entries) {String key = entry.getKey();int value = entry.getValue();System.out.println(key+"---->"+value);}
方式三 : Lambda表达式
- JDK8 开始的新技术 一种更简单 更直接的遍历集合方式
Map结合Lambda遍历的API
方法名称 | 说明 |
---|---|
default void forEach(BioConsumer<? super K,? super V > action) | 结合lambda遍历Map集合 |
//遍历Map集合 方式三 : Lambda表达式/*map.forEach(new BiConsumer<String, Integer>() {@Overridepublic void accept(String key, Integer value) {System.out.println(key+"---->"+value);}});*///简化后map.forEach(( key, value) -> System.out.println(key+"---->"+value));