大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節(jié)點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 hot資訊 兩種HashMap遍歷方式

兩種HashMap遍歷方式

更新時間:2022-01-05 11:48:33 來源:動力節(jié)點 瀏覽873次

一般來說,有5種遍歷,其中一種只遍歷值,4種完全遍歷整個地圖。分類及原理介紹如下

劃分

Map遍歷:

遍歷方法:分為foreach和iterator兩種,foreach效率更高。這就是使用的方法和遍歷因子的區(qū)別;

遍歷因子:按照遍歷因子劃分,那么有keySet()和entrySet()兩種,map的內(nèi)部函數(shù)是通過Map.Entry接口實現(xiàn)的,keySet()是直接獲取key,entrySet是獲取每個條目先,然后使用條目的 getKey() 和 getValue() 完成遍歷,速度會更好。

CreateTraversal.java(使用示例)

import lombok.extern.slf4j.Slf4j;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
/**
 * @Author: renjiaxin
 * @Despcription:
 * @Date: Created in 2018/8/17 9:52
 * @Modified by:
 */
@Slf4j
public class CreateTraversal {
    public static Map<String, Object> createMap() {
        Map<String, Object> map = new HashMap<>();
        map.put("Sky Sea Wing", "36C");
                 map.put("Ozawa Maria", "42F");
                 map.put("", "");//Yes, it can be defined like this
                 map.put(null, null);/*key can be null, but there can only be one, and only one works*/
        map.put(null, null);
                 map.put("Hatano Yui", "36C");
                 map.put("Aoi Sola", "28B");
                 map.put(" ", "");//Yes, it can be defined like this
                 map.put("Ogura Yuko", "26A");
                 map.put("Fukada Kyoko", null);
                 map.put("Amamiya piano sound", "36C");
                 map.put("Hojo Mafei", null);//value is null, data is temporarily empty, value is null and there can be multiple
                 map.put("Green Wasabi", "43F");
        return map;
    }
    public static void traversalMap(Map<String, Object> map, int type) {
        if (type < 0 || type > 4) {
                         log.warn("Wrong traversal type, type:{}", type);
        }
        switch (type) {
            case 0:
                partForEachTraversal(map);
                break;
            case 1:
                forEachKeySetTraversal(map);
                break;
            case 2:
                forEachEntrySetTraversal(map);
                break;
            case 3:
                iteratorKeySetTraversal(map);
                break;
            case 4:
                                 System.out.println("Recommended map.entrySet()+iterator");
                iteratorEntrySetTraversal(map);
                break;
            default:
                iteratorEntrySetTraversal(map);
        }
    }
         /*It just traversed the values, not the keys*/
    private static void partForEachTraversal(Map<String, Object> map) {
                 System.out.println("\nUse values ??to loop, can only traverse values, not keys");
        long start = System.currentTimeMillis();
        for (Object value : map.values()) {
            System.out.print(value + " ");
        }
        long end = System.currentTimeMillis();
        long time = start - end;
                 System.out.println("\nmap size n: "+ map.values().size());
                 System.out.println("The running time is: "+ time + "ms");
        System.out.println("");
    }
    /*map.keySet()+foreach*/
    private static void forEachKeySetTraversal(Map<String, Object> map) {
                 System.out.println("map.keySet()+foreach, complete traversal, slow speed!");
        long start = System.currentTimeMillis();
        for (String key : map.keySet()) {
            System.out.print("key: " + key + ", values: " + map.get(key) + "; ");
        }
        long end = System.currentTimeMillis();
        long time = start - end;
                 System.out.println("\nmap size n: "+ map.values().size());
                 System.out.println("The running time is: "+ time + "ms");
        System.out.println("");
    }
    /*map.entrySet()+foreach*/
    private static void forEachEntrySetTraversal(Map<String, Object> map) {
                 System.out.println("map.entrySet()+foreach, complete traversal, fast!");
                 System.out.println("Map.Entry is an interface inside the Map class, which provides the main methods and functions of the Map class");
        long start = System.currentTimeMillis();
                 Set<Map.Entry<String, Object>> entrySet = map.entrySet();//Take out this set
        for (Map.Entry<String, Object> entry : entrySet) {/*---*/
            System.out.print("key= " + entry.getKey() + " and value= " + entry.getValue() + "; ");
        }
        long end = System.currentTimeMillis();
        long time = start - end;
                 System.out.println("\nmap size n: "+ map.values().size());
                 System.out.println("The running time is: "+ time + "ms");
        System.out.println("");
    }
    /*map.keySet()+iterator*/
    private static void iteratorKeySetTraversal(Map<String, Object> map) {
                 System.out.println("map.keySet()+iterator, complete traversal");
        long start = System.currentTimeMillis();
        Iterator<String> it = map.keySet().iterator();/**/
        while (it.hasNext()) {
            System.out.print("key :" + it.next() + " , value: " + map.get(it.next()));
        }
        long end = System.currentTimeMillis();
        long time = start - end;
                 System.out.println("\nmap size n: "+ map.values().size());
                 System.out.println("The running time is: "+ time + "ms");
        System.out.println("");
    }
    /*map.entrySet()+iterator*/
    private static void iteratorEntrySetTraversal(Map<String, Object> map) {
                 System.out.println("map.entrySet()+iterator, complete traversal, the recommended approach!");
        long start = System.currentTimeMillis();
        //Iterator it = map.entrySet().iterator();/*---*/
                 Iterator<Map.Entry<String, Object>> it = map.entrySet().iterator();//Same up and down, this one is clearer
        while (it.hasNext()) {
            System.out.print("key :" + it.next() + " , value: " + map.get(it.next()));
        }
        long end = System.currentTimeMillis();
        long time = start - end;
                 System.out.println("\nmap size n: "+ map.values().size());
                 System.out.println("The running time is: "+ time + "ms");
        System.out.println("");
    }
    public static void main(String[] args) {
                 System.out.println("Because map uses a key-value form of data structure, there is no position in digital form, so for(int i=0;i<n;i++ form)");
        Map<String, Object> mp = createMap();
        traversalMap(mp, 0);
        traversalMap(mp, 1);
        traversalMap(mp, 2);
        traversalMap(mp, 3);
        traversalMap(mp, 4);
    }
}

 

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 波多野结衣一区免费作品 | 亚洲小视频在线 | 国产福利在线播放 | 久草视频在线播放 | 视频一区二区三区在线 | 免费观看四虎精品国产永久 | 寡妇野外啪啪一区二区 | a毛片在线还看免费网站 | 欧美一级日本一级韩国一级 | 国产一区二区免费在线观看 | 欧美性视频在线 | 亚洲三级中文字幕 | 伊人久久国产精品 | 久久久久久久久网站 | 国产在线精品一区二区 | 中文字幕日韩哦哦哦 | 99青草| 荔枝污| 亚洲视频在线一区二区三区 | 成人一a毛片免费视频 | 国产精品久久久久久久网站 | 麻豆va一区二区三区久久浪 | 色爱区综合激情五月综合色 | 亚洲国产成人久久一区二区三区 | 精品免费久久久久久影院 | 欧美嫩草 | 国产一区二区三区在线观看视频 | 成人午夜网站 | 久久女同互慰一区二区三区 | 久久久99精品免费观看精品 | 99热久久国产精品一区 | 在线观看理论片 | 亚洲精品色播一区二区 | 久久国产精品久久国产片 | 亚洲欧美日产综合一区二区三区 | 天天精品 | 亚洲精品欧美精品中文字幕 | 国产精品伊人 | 四虎官方影库 | 91手机在线 | 成年人香蕉视频 |