Map集合遍历的三种方式

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版权协议,转载请附上原文出处链接和本声明。