JAVA中Map类对象如何实现遍历

由于JAVA中Map类是不继承Iterable接口,所以不能像其他Collection 数据结构那样,通过迭代器进行遍历;那么Map<K,V>类对象如何实现遍历呢?

我们先看JDK中怎么介绍,后面写代码说明;

JDK文档中,其意大致就是通过Map.Entry<K,V> 接口,通过创建一个存储“键值对” 的Set 来接收entrySet()方法返回的Map对象的键值对视图,而Set<>是继承Iterable接口的,我们便可以通过foreach 来实现遍历:

 举例:

private boolean canGenerate(Map<Character, Integer> cmp, Map<Character, Integer> map) {
        Set<Map.Entry<Character,Integer>> entries = cmp.entrySet();
        for(Map.Entry<Character,Integer> entry : entries){
            Character c = entry.getKey();
            int cnt = entry.getValue();
            if(!map.containsKey(c)||map.get(c)<cnt) return false;
        }
    return true;
    }
原文地址:https://www.cnblogs.com/debug-the-heart/p/13369581.html