• Java遍历map得六种方法


    1. 目录
    • 通过 keySet() 方法获取全部的key值;
    • 通过 values() 方法获取全部的value值;
    • 通过遍历key值获取value值;
    • 通过entrySet()方法,进行遍历;
    • 使用lambda表达式;
    • 采用迭代器方式,方便进行元素的删除操作;
    2. 方案实现
    2.1 获取全部的key值
    /**
     * 1.获取全部的key值
     */
    public void testMap1(){
        HashMap<String, Object> map = new HashMap<>();
        Set<String> keySet = map.keySet();
        for (String key: keySet){
            System.out.println(key);
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    2.2 获取全部的value值
    /**
     * 2.获取全部的value值
     */
    public void testMap2(){
        HashMap<String, Object> map = new HashMap<>();
        Collection<Object> values = map.values();
        for (Object value: values){
            System.out.println(value);
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    2.3 通过遍历key值获取value值
    /**
     * 3.通过遍历key值获取value值
     */
    public void testMap3(){
        HashMap<String, Object> map = new HashMap<>();
        Set<String> keySet = map.keySet();
        for (String key: keySet){
            Object value = map.get(key);
            System.out.println(value);
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    2.4 通过entrySet()方法,进行遍历
    /**
     * 4.通过entrySet()方法,进行遍历
     */
    public void testMap4(){
        HashMap<String, Object> map = new HashMap<>();
        Set<Map.Entry<String, Object>> entrySet = map.entrySet();
        for (Map.Entry<String, Object> entry: entrySet){
            // entry代表map元素的一个对象,通过对象调用getValue()方法,获取value数据,也可以调用getKey()方法,获取key值
            Object value = entry.getValue();
            System.out.println(value);
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    2.5 使用lambda表达式
    /**
     * 5.使用lambda表达式
     */
    public void testMap5(){
        HashMap<String, Object> map = new HashMap<>();
        map.forEach((key,value)->{
            // 直接获取key值和value值
            System.out.println("key: " + key + "value: " + value);
        });
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    2.6 采用迭代器方式,方便进行元素的删除操作
    /**
     * 6.采用迭代器方式,方便进行元素的删除操作
     */
    @Test
    public void testMap6(){
        HashMap<String, Object> map = new HashMap<>();
        map.put("77","6666");
        Iterator<Map.Entry<String, Object>> iterator = map.entrySet().iterator();
        while (iterator.hasNext()){
            Map.Entry<String, Object> entry = iterator.next();
            if (entry.getKey().equals("77")){
                iterator.remove();
            }
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    3. 总结

    • 如果只需要key值,则直接使用 keySet()方式;
    • 如果只需要value值,则直接使用values() 方式;
    • 如果需要进行遍历key,value,可以用entrySet() 或者 lambda表达式;
    • 如果需要进行遍历删除,可以用 iterator() 迭代器方式;
  • 相关阅读:
    多跳推理真的可解释吗?10.24
    量子计算和量子通信技术
    分布式微服务架构下网络通信的底层实现原理
    有什么学习 Web 前端的技巧分享?
    零数科技 CEO 林乐受邀出席亿欧“元碳局”,探讨元宇宙文旅破局之道
    全局安装oh-my-zsh保姆教程
    【linux实用命令】
    计算机视觉+人工智能面试笔试总结——CNN模型总结
    【软考 系统架构设计师】项目管理① 立项管理
    通信工程学习:什么是接入网(AN)中的CF核心功能
  • 原文地址:https://blog.csdn.net/qq_42102911/article/details/128131412