HashMap的四種遍歷方法,及效率比較(簡單明了)


https://yq.aliyun.com/ziliao/210955

public static void main(String[] args) {
        HashMap<Integer, String> map = new HashMap<Integer, String>();
        for (int i = 0; i < 40000; i++) {
            map.put(i, "第" + i + "個");
        }
        //循環第一種
        long t1 = System.nanoTime();
        Object key[] = map.keySet().toArray();
        for (int i = 0; i < map.size(); i++) {
            map.get(key[i]);
        }
        long t2 = System.nanoTime();

        // 循環第二種
        for (Map.Entry<Integer, String> entry : map.entrySet()) {
            entry.getValue();
        }
        long t3 = System.nanoTime();

        // 循環第三種
        Iterator<Integer> it = map.keySet().iterator();
        while (it.hasNext()) {
            Integer ii = (Integer) it.next();
            map.get(ii);
        }
        long t4 = System.nanoTime();

        // 循環第四種
        for (Integer kk : map.keySet()) {
            map.get(kk);
        }
        long t5 = System.nanoTime();
        System.out.println("第一種方法耗時:" + (t2 - t1) / 1000 + "微秒");
        System.out.println("第二種方法耗時:" + (t3 - t2) / 1000 + "微秒");
        System.out.println("第三種方法耗時:" + (t4 - t3) / 1000 + "微秒");
        System.out.println("第四種方法耗時:" + (t5 - t4) / 1000 + "微秒");
    }

輸出結果:

第一種方法耗時:101918微秒
第二種方法耗時:49042微秒
第三種方法耗時:82706微秒
第四種方法耗時:75093微秒

 

把上述的1000000改成10,輸出結果如下:

第一種方法耗時:806微秒
第二種方法耗時:453微秒
第三種方法耗時:19微秒
第四種方法耗時:17微秒
改為100:

第一種方法耗時:909微秒
第二種方法耗時:631微秒
第三種方法耗時:154微秒
第四種方法耗時:141微秒

經測試,第三種方法和第四種方法耗時基本差不多,當數據上萬時,第二種方法的效率更高。

以上是HashMap的四種遍歷方法,及效率比較的全部內容,在雲棲社區的博客、問答、雲棲號、人物、課程等欄目也有HashMap的四種遍歷方法,及效率比較的相關內容,歡迎繼續使用右上角搜索按鈕進行搜索java , 遍歷 , hashmap 性能比較 ,以便於您獲取更多的相關知識。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM