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>() {
@Override
public void accept(String key, Integer value) {
System.out.println(key+"---->"+value);
}
});*/
//简化后
map.forEach(( key, value) -> System.out.println(key+"---->"+value));
版权声明:本文为yhb500234原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。