HashMap四种取值的效率问题

日常开发中会经常用到map来存取值,但是对于HashMap中的四种取值方式效率比对如下:

  1、我先在想map中存放了20000个键值对
   Map<String,String> map = new HashMap<>();
        int total=2000000;
        for(int i=0;i< total;i++){
            map.put(i+"",(i+1)+"");
        }


   2、四种取值方式比较
      1、
    
   Set<String> set = map.keySet();
        for (String key : set) {
            System.out.println(key + map.get(key));
        }


       2、
       Iterator<Map.Entry<String, String>> it = map.entrySet().iterator();
        while (it.hasNext()) {
            Map.Entry<String, String> entry = it.next();
            System.out.println("key=" + entry.getKey() + "value=" + entry.getValue());
        }


        3、
           for (Map.Entry<String, String> entry : map.entrySet()) {
            System.out.println("key=" + entry.getKey() + "value=" + entry.getValue());
        }


        4、
     
     for (String v : map.values()) {
            System.out.println(v);
        }


   比对结果:
      20000个键值:1、200 2、240 3、268  4、172
      200000个键值:1、786 2、568 3、1304 41137
      通过测试在map中存放20000个键值和200000个键值,自己多次运行每种取值方法,每次运行的花费的时间都不一样,所以在实际运用中根据具体情况和值的多少来处理把!

猜你喜欢

转载自wangxiangyang.iteye.com/blog/2406156