Map遍历的六种方式

学习目标:

熟练掌握Map的遍历方式

例题:

需求:遍历Map集合

代码如下:

package com.yy.object.test.test_collection;

import java.util.*;

/**
 * @author YanYang
 * @projectName day02
 * @description: TODO
 * @date 2021/3/30 19:48
 */
public class MapTest02 {
    public static void main(String[] args) {
        Map<Integer, String>  map = new HashMap<>();
        map.put(1, "光头强");
        map.put(2, "熊大");
        map.put(3, "熊二");

        /**
         * 第一种方法
         * map.keySet() 返回一个 set<类型为key的类型> 集合
         * 由于这种方式在遍历中又获取了一遍值,所以这种方式比第二种方式慢很多
         */
        // foreach遍历
        for(Integer keys : map.keySet()) {
            System.out.println("key = " + keys + ", value = " + map.get(keys));
        }

        System.out.println(".......................");

        // Iterator遍历
        Iterator<Integer> iterator = map.keySet().iterator();
        while(iterator.hasNext()) {
            Integer key = iterator.next();
            System.out.println("key = " + key+ ", value = " + map.get(key));
        }

        System.out.println("-------------------------");

        /**
         * 第二种
         * Map.Entry<>是 Map 中的一个接口,Map.Entry 中封装了 getKey() 和 getValue()方 法,可以获得相应的 key 和 value
         * map.entrySet() 返回一个实现了 Map.Entry 接口的对象的set集合
         */
        // 使用foreach遍历输出
        Set<Map.Entry<Integer, String>> set = map.entrySet();
        for(Map.Entry<Integer, String> items : set) {
            System.out.println("key = " + items.getKey() + ", value = " + items.getValue());
        }

        System.out.println(".......................");
        
        // 使用Iterator遍历输出
        Iterator<Map.Entry<Integer, String>> it = map.entrySet().iterator();
        while (it.hasNext()) {
            Map.Entry<Integer, String> m = it.next();
            System.out.println("key = " + m.getKey() + ", value = " + m.getValue());
        }

        System.out.println("-------------------------");

        /**
         * 第三种,第三种是通过 Map 的 values() 方法获得一个 cllection<String> 集合
         */
        for(String str : map.values()) {
            System.out.println("value = " + str);
        }

        System.out.println(".......................");

        Iterator iterator1 = map.values().iterator();
        while(iterator1.hasNext()) {
            System.out.println("value = " + iterator1.next());
        }

    }
}

运行结果:

"C:\Program Files\Java\jdk-11.0.9\bin\java.exe"
key = 1, value = 光头强
key = 2, value = 熊大
key = 3, value = 熊二
.......................
key = 1, value = 光头强
key = 2, value = 熊大
key = 3, value = 熊二
-------------------------
key = 1, value = 光头强
key = 2, value = 熊大
key = 3, value = 熊二
.......................
key = 1, value = 光头强
key = 2, value = 熊大
key = 3, value = 熊二
-------------------------
value = 光头强
value = 熊大
value = 熊二
.......................
value = 光头强
value = 熊大
value = 熊二

Process finished with exit code 0

总结:

以上就是Map遍历的几种方式了,代码仅供参考,欢迎讨论其他的遍历方式。

posted @ 2021-03-30 21:30  Yan_Yang  阅读(778)  评论(0编辑  收藏  举报