Java难点 | Map集合两种遍历方式

举报
几分醉意. 发表于 2022/10/27 20:21:30 2022/10/27
【摘要】 Map集合的遍历既重要也是比较难理解,本文将对Map的两种遍历方式展开详细的介绍,通过举例、代码实战的方式,让你彻底掌握Map集合的两种遍历方式。

Map集合两种遍历方式【重点】

键找值方式

Map集合的第一种遍历方式:通过键找值的方式
Map集合中的方法:
Set<k> keySet(): 返回此映射中包含的键的 Set视图。
实现步骤:
1.使用Map集合中的方法keySet(),把Map集合所有的key取出来,存储到一个Set集合中。
2.遍历set集合,获取Map集合中的每一个key。
3.通过Map集合中的方法get(key),通过key找到value。

举例

public static void main(String[] args) {
        //创建Map集合对象
        Map<String,Integer> map=new HashMap<>();
        map.put("丽颖",168);
        map.put("音",165);
        map.put("玲",178);

        //1.使用keySet方法,把map集合所有的key取出来,存储到set集合中
        Set<String> set = map.keySet();

        //2.遍历set集合,获取map集合中每一个key
        //使用迭代器遍历
        Iterator<String> it = set.iterator();
        while (it.hasNext()){
            String next = it.next(); //获取map集合中每一个key
            //3. 通过Map集合中的get方法,通过key找到value
            Integer integer = map.get(next);
            System.out.println(next+"="+integer);
        }
        System.out.println("=================");

        //使用增强for遍历
        for (String s : set) {
            //3. 通过Map集合中的get方法,通过key找到value
            Integer integer = map.get(s);
            System.out.println(s+"="+integer);
        }

        //简化增强for遍历
        // Set<String> set = map.keySet(); map.keySet()就相当于set集合
        for (String s : map.keySet()) {
            //3. 通过Map集合中的get方法,通过key找到value
            Integer integer = map.get(s);
            System.out.println(s+"="+integer);
        }
    }

键值对方式

Map集合遍历的第二种方式:使用Entry对象遍历。这种方式效率比较高,因为获取的key和value都是直接从Entry对象中获取的属性值,这种方式比较适合于大数据量。

Entry键值对对象:
在这里插入图片描述

Map集合中的方法:
Set<Map.Entry<K,V >> entrySet()返回此映射中包含的映射关系的 Set 视图。

实现步骤:
1.使用Map集合中的方法entrySet(),把Map集合中多个Entry对象取出来,存储到一个Set集合中
2.谝历Set集合,获取每一个Entry对象
3.使用Entry对象中的方法getKey()和getValue()获取键与值

举例

public static void main(String[] args) {
        //创建Map集合对象
        Map<String,Integer> map=new HashMap<>();
        map.put("丽颖",168);
        map.put("音",165);
        map.put("玲",178);

        //1.使用Map集合中的方法entrySet(),把Map集合中多个Entry对象取出来,存储到一个set集合中
        Set<Map.Entry<String, Integer>> set = map.entrySet();

        //2.遍历set集合
        //使用迭代器遍历
        Iterator<Map.Entry<String, Integer>> it = set.iterator();
        while (it.hasNext()){
            Map.Entry<String, Integer> next = it.next();
            //3.使用Entry对象中的方法getKey(),getValue()获取键和值
            String key = next.getKey();
            Integer value = next.getValue();
            System.out.println(key+"="+value);
        }
        System.out.println("================");

        //使用增强for遍历
        for (Map.Entry<String, Integer> aa : set) {
            //3.使用Entry对象中的方法getKey(),getValue()获取键和值
            String key = aa.getKey();
            Integer value = aa.getValue();
            System.out.println(key+"="+value);
        }
    }
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。