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);                
          });                                                      

}
 

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