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

如何遍历Map的每个元素

程序员文章站 2022-03-21 20:42:25
...

方法一:使用entrySet方法:
示例:

public static void main(String[] args) {
        Map<String, String> param = new HashMap<>(8);
        param.put("1","A");
        param.put("2","B");
        param.put("3","C");
        param.put("4","D");
        param.put("5","E");
        for (Map.Entry<String, String> p : param.entrySet()) {
            System.out.println("[ key=" + p.getKey() + " , " + p.getValue() + " ]");
        }
    }

结果:
[ key=1 , A ]
[ key=2 , B ]
[ key=3 , C ]
[ key=4 , D ]
[ key=5 , E ]

方法二:使用Java8中map新增的方法forEach
示例:

public static void main(String[] args) {
        Map<String, String> param = new HashMap<>(8);
        param.put("1","A");
        param.put("2","B");
        param.put("3","C");
        param.put("4","D");
        param.put("5","E");
        param.forEach((key,value) -> System.out.println("[ key=" + key + " , " + value + " ]"));
    }

结果:
[ key=1 , A ]
[ key=2 , B ]
[ key=3 , C ]
[ key=4 , D ]
[ key=5 , E ]
其实map新增的方法forEach底层实现与使用方法一的方法一致,源码解释:

//map接口的默认方法,所有实现map的类都能调用
default void forEach(BiConsumer<? super K, ? super V> action) {
		//检查是否为null
        Objects.requireNonNull(action);
        for (Map.Entry<K, V> entry : entrySet()) {
            K k;
            V v;
            try {
            	//获取key-value
                k = entry.getKey();
                v = entry.getValue();
            } catch(IllegalStateException ise) {
                throw new ConcurrentModificationException(ise);
            }
            //执行
            action.accept(k, v);
        }
    }
相关标签: 遍历