JAVA 遍历map的几种方法

这种事儿直接上代码吧_

public static void main(String[] args) {
        //定义map
        Map colorMap = new HashMap();
        colorMap.put("red",   "红色");
        colorMap.put("green", "绿色");
        colorMap.put("blue",  "蓝色");
        colorMap.put("black", "黑色");
        
        //1、使用foreach循环
        readMapForEach(colorMap);
        
        //2、使用迭代
        readMapByIterator(colorMap);
        
        //3、当容量特别大的时候,建议用以下方法
        readBigMap(colorMap);
    }
    
    /**
     * 1、使用foreach循环
     * @param map
     */
    private static final void readMapForEach(Map map){
        //1、使用foreach循环
        //获取key + value
        for (Object key : map.keySet()) {
            String value = (String)map.get(key);
            System.out.println(key + " : " + value);
        }
        //获取value
        for (Object value : map.values()) {
            System.out.println(value);
        }
    }
    
    /**
     * 2、使用迭代
     * @param map
     */
    private static void readMapByIterator(Map map){
        //使用set迭代
        Set set  = map.entrySet();       
        Iterator i  = set.iterator();   
        //判断往下还有没有数据
        while(i.hasNext()){    
            Map.Entry entry1 = (Map.Entry)i.next();  
            System.out.println(entry1.getKey()+" : "+entry1.getValue());  
        }
        
        //使用keySet()迭代器
        Iterator it = map.keySet().iterator();  
        while(it.hasNext()){  
            String key   = it.next().toString();   
            String value = (String) map.get(key);    
            System.out.println(key + " : " +value);  
        }
             
        //使用entrySet()迭代器
        Iterator> iter = map.entrySet().iterator();
        //判断往下还有没有数据
        while(iter.hasNext()){
            //有的话取出下面的数据
            Entry entry = iter.next();
            String key   = entry.getKey();
            String value = (String)entry.getValue();
            System.out.println(key + " :" + value);
        }
    }
    
    /**
     * 3、当容量特别大的时候,建议用以下方法
     * @param args
     */
    private static void readBigMap(Map map){
        //当容量特别大的时候
        for (Entry entry : map.entrySet()) {
            System.out.println(entry.getKey() + " : " + entry.getValue());
        }
    }
}

你可能感兴趣的:(JAVA 遍历map的几种方法)