Java基礎之HashMap常用遍歷以及性能分析

利用 Map.keySet()遍歷HashMap

package com;

import java.util.HashMap;
import java.util.Map;

/**
 * @author imenger
 * @date 2020/6/30 3:34 下午
 */
public class TestMap {

    public static void main(String[] args) {
        Map<String, Integer> userMap = inputMap();
        showMap1(userMap);
    }

    /**
     * 利用 Map.keySet()遍歷HashMap
     *
     * @param userMap
     * @return void
     * @author imenger
     * @date 2020/7/1 10:29 上午
     */
    public static void showMap1(Map<String, Integer> userMap) {
        System.out.println("利用 keySet 進行遍歷");
        for (String s : userMap.keySet()) {
            System.out.println(s + "***" + userMap.get(s));
        }
    }

    public static Map<String, Integer> inputMap() {
        Map<String, Integer> userMap = new HashMap<String, Integer>(5);
        userMap.put("zhang1", new Integer(1));
        userMap.put("zhang2", new Integer(2));
        userMap.put("zhang3", new Integer(3));
        userMap.put("zhang4", new Integer(4));
        userMap.put("zhang5", new Integer(5));
        return userMap;
    }
}

輸出結果:

利用 keySet 進行遍歷
zhang2***2
zhang3***3
zhang1***1
zhang4***4
zhang5***5

利用 Map.values()遍歷HashMap

此方法只能 遍歷 value,獲取不到 key。

import java.util.HashMap;
import java.util.Map;

/**
 * @author imenger
 * @date 2020/6/30 3:34 下午
 */
public class TestMap {

    public static void main(String[] args) {
        Map<String, Integer> userMap = inputMap();
        showMap2(userMap);
    }


    /**
     * 利用 Map.values()遍歷HashMap
     *
     * @param userMap
     * @return void
     * @author imenger
     * @date 2020/7/1 10:29 上午
     */
    public static void showMap2(Map<String, Integer> userMap) {
        System.out.println("利用 values 進行遍歷");
        // 只能獲取 value值,如果需要獲取 k,v 就用第一種。
        for (Integer v : userMap.values()) {
            System.out.println(v);
        }
    }


    public static Map<String, Integer> inputMap() {
        Map<String, Integer> userMap = new HashMap<String, Integer>(5);
        userMap.put("zhang1", new Integer(1));
        userMap.put("zhang2", new Integer(2));
        userMap.put("zhang3", new Integer(3));
        userMap.put("zhang4", new Integer(4));
        userMap.put("zhang5", new Integer(5));
        return userMap;
    }
}

輸出結果:

利用 values 進行遍歷
2
3
1
4
5

利用entrySet遍歷HashMap

如果同時獲取 k 和 v 優先採用這種方式

import java.util.HashMap;
import java.util.Map;

/**
 * @author imenger
 * @date 2020/6/30 3:34 下午
 */
public class TestMap {

    public static void main(String[] args) {
        Map<String, Integer> userMap = inputMap();
        showMap3(userMap);
    }


    /**
     * 利用 entrySet 遍歷HashMap
     *
     * @param userMap
     * @return void
     * @author imenger
     * @date 2020/7/1 10:29 上午
     */
    public static void showMap3(Map<String, Integer> userMap) {
        System.out.println("利用 entrySet 進行遍歷");
        // 獲取鍵值映射,
        // 通過這種方法可以直接把該節點的 k和 v 一起獲取出來,與 map1 區別爲不需要知道 k 再次獲取
        for (Map.Entry<String, Integer> entry : userMap.entrySet()) {
            System.out.println(entry.getKey() + "===" + entry.getValue());
        }
    }


    public static Map<String, Integer> inputMap() {
        Map<String, Integer> userMap = new HashMap<String, Integer>(5);
        userMap.put("zhang1", new Integer(1));
        userMap.put("zhang2", new Integer(2));
        userMap.put("zhang3", new Integer(3));
        userMap.put("zhang4", new Integer(4));
        userMap.put("zhang5", new Integer(5));
        return userMap;
    }
}

輸出結果:

利用 entrySet 進行遍歷
zhang2===2
zhang3===3
zhang1===1
zhang4===4
zhang5===5

 

 

 

 

 

 

 

 

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