• HashMap遍历方式探究


    HashMap的遍历有两种常用的方法,那就是使用keyset及entryset来进行遍历,但两者的遍历速度是有差别的,下面请看实例: 

    package com.HashMap.Test;
    
    import java.util.HashMap;
    import java.util.Iterator;
    import java.util.Map.Entry;

    public class HashMapTest { public static void main(String[] args) { HashMap<Integer, Integer> hm = new HashMap<>(); for(int i=0;i<10000000;i++){ hm.put(i, i); } //方式1: long currentTimeMillisStart = System.currentTimeMillis(); Iterator<Entry<Integer, Integer>> iterator = hm.entrySet().iterator(); while(iterator.hasNext()){ Entry<Integer, Integer> next = iterator.next(); //System.out.println("key: "+next.getKey()+" value: "+next.getValue()); } long currentTimeMillisEnd =System.currentTimeMillis(); System.out.println("Time: " + (currentTimeMillisEnd-currentTimeMillisStart)); //方式2 long currentTimeMillisStart2 = System.currentTimeMillis(); Iterator<Integer> iterator2 = hm.keySet().iterator(); while(iterator2.hasNext()){ Integer next = iterator2.next(); //System.out.println("key: "+ next+" value: "+hm.get(next)); } long currentTimeMillisEnd2 =System.currentTimeMillis(); System.out.println("Time: " + (currentTimeMillisEnd2-currentTimeMillisStart2)); } }
    对于keySet其实是遍历了2次,一次是转为iterator,一次就从hashmap中取出key所对于的value。而entryset只是遍历了第一次,他把key和value都放到了entry中。 
    Time: 58
    Time: 78
  • 相关阅读:
    Django踩坑记录2
    Django踩坑记录1
    pycharm2020激活破解和汉化
    python 读写文件
    python截取视频制作动态表情包+文字
    jenkins运行错误解决办法
    python读取xlsx文件
    python读取csv文件
    python+requests之接口测试
    win10安装jenkins忘记密码的解决方法
  • 原文地址:https://www.cnblogs.com/felixzh/p/5970050.html
Copyright © 2020-2023  润新知