Java中HashMap遍历的两种方式效率不同

【原文】:http://www.javaweb.cc/language/java/032291.shtml
第一种:

  1. Map map = new HashMap();
  2. Iterator iter = map.entrySet().iterator(); 
  3. while (iter.hasNext()) {  
  4. Map.Entry entry = (Map.Entry) iter.next();  
  5. Object key = entry.getKey();  
  6. Object val = entry.getValue();  
  7. }

效率高,以后一定要使用此种方式!
第二种:

  1. Map map = new HashMap();  
  2. Iterator iter = map.keySet().iterator();  
  3. while (iter.hasNext()) {  
  4. Object key = iter.next();  
  5. Object val = map.get(key);  
  6. }

效率低,以后尽量少使用!
HashMap的遍历有两种常用的方法,那就是使用keyset及entryset来进行遍历,但两者的遍历速度是有差别的,对于keySet其实是遍历了2次,一次是转为iterator,一次就从hashmap中取出key所对于的value。而entryset只是遍历了第一次,他把key和value都放到了entry中,所以就快了。

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>