欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Map三种遍历方式

程序员文章站 2022-03-19 15:32:08
Map集合遍历的三种方法1.“键找值”的方法遍历:先获取map集合的全部键,再根据遍历的键找值public class MapDemo02 { public static void main(String[] args){ Map maps = new HashMap<>(); maps.put("电脑",1); maps.put("鼠标",3); maps.put("键盘",...

Map集合遍历的三种方法
1.“键找值”的方法遍历:先获取map集合的全部键,再根据遍历的键找值

public class MapDemo02 {
    public static void main(String[] args){
        Map<String,Integer> maps = new HashMap<>();
        maps.put("电脑",1);
        maps.put("鼠标",3);
        maps.put("键盘",5);
        maps.put("凳子",11);
        System.out.println(maps);
        // 1.“键找值”的方法遍历:先获取map集合的全部键,再根据遍历的键找值
        //a.提取Map集合全部的键
        Set<String> keys = maps.keySet();
        System.out.println(keys);
        //b.遍历键提取对应的值
        for (String key : keys) {
            Integer value = maps.get(key);
            System.out.println(key+"==>"+value);
        }
}

2.“键值对”的方法遍历:难度大。

public class MapDemo02 {
    public static void main(String[] args){
        Map<String,Integer> maps = new HashMap<>();
        maps.put("电脑",1);
        maps.put("鼠标",3);
        maps.put("键盘",5);
        maps.put("凳子",11);
        System.out.println(maps);
        //“键值对”的方法遍历:
        /*
        1.一开始Map集合想通过foreach来直接遍历。但是发现Map集合的键值对元素
        直接是没有数据类型的
        2.把Map集合转换成一个Set集合:set<Map.Entry<K,V>> entrySet();
        Set<Map.Entry<String,Integer>> entries = maps.entrySet();
        例子:maps = {huawei=1000, 手表=10, 生活用品=10, iphoneX=100, 娃娃=30}
                    ↓
                entries = [(huawei=1000) , (手表=10) , (生活用品=10) , (iphoneX=100) , (娃娃=30)]
                entry 此时键值对作为了一个整体对象就有了类型对象,类型是Map的实体类型
                (Map.Entry<String,Integer>)
         */
        //a.把Map集合转换成一个Set集合
        Set<Map.Entry<String,Integer>> entries = maps.entrySet();
        //遍历Set集合此时元素就有了类型,类型是Map.Entry<String,Integer>
        for (Map.Entry<String, Integer> entry : entries) {
            System.out.println(entry);
            String key = entry.getKey();
            Integer value = entry.getValue();
            System.out.println(key+"===>"+value);
        }
    }
}

3.JDK1.8开始之后的新技术:Lanbda表达式

//3.JDK1.8开始之后的新技术:Lanbda表达式
        maps.forEach((k,v) -> {
            System.out.println(k +"==>"+ v);
        });

本文地址:https://blog.csdn.net/weixin_42440011/article/details/111926530

相关标签: java