HashMap的5种遍历方式

package com.data.linear.map;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;

/**
 * HashMap的遍历——4种方式
 * 
 */
public class HashMapTraverse {

    public static void main(String[] args) {

        Map<String, String> map = new HashMap<String, String>();
        map.put("1", "value1");
        map.put("2", "value2");
        map.put("3", "value3");
        map.put("4", "value4");

        // 第一种:普通使用,二次取值
        System.out.println("通过Map.keySet遍历key和value:");
        for (String key : map.keySet()) {
            System.out.println("KEY:" + key + "  " + "VALUE:" + map.get(key));
        }

        // 第二种
        System.out.println("\n通过Map.entrySet使用iterator遍历key和value: ");
        Iterator map1it = map.entrySet().iterator();
        while (map1it.hasNext()) {
            Map.Entry<String, String> entry = (Entry<String, String>) map1it.next();
            System.out.println("Key: " + entry.getKey() + " Value: " + entry.getValue());
        }

        // 第三种:推荐,尤其是容量大时
        System.out.println("\n通过Map.entrySet遍历key和value");
        for (Map.Entry<String, String> entry : map.entrySet()) {
            System.out.println("KEY:" + entry.getKey() + " " + "VALUE:" + entry.getValue());
        }

        // 第四种
        System.out.println("\n通过Map.values()遍历所有的value,但不能遍历key");
        for (String v : map.values()) {
            System.out.println("The value is " + v);
        }

       // 第五种      通过JDK1.8的新特性Lambda表达式来遍历

    /*
     *    格式:    
     *        map集合名称.forEach((key,value) -> {
     *            System.out.println(key + "===="+ value);
     *        });
     */

          HashMap<Integer,String> map = new HashMap<Integer,String>(); 
          map.put(1,"a");                                          
          map.put(2,"b");                                          
          map.put(3,"c");                                          
          map.put(4,"d");                                          
          map.forEach((key,value) -> {                               
                System.out.println(key + "===="+ value);                
          });                                                      

}
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章