Java中HashMap遍历的两种方式原文地址: http://www.javaweb.cc/language/java/032291.shtml

第一种:
Map map = new HashMap();
Iterator iter = map.entrySet().iterator();
while (iter.hasNext())
{Map.Entry entry = (Map.Entry) iter.next();Object key = entry.getKey();Object val = entry.getValue();
}

效率高,以后一定要使用此种方式!
 
第二种:
Map map = new HashMap();
Iterator iter = map.keySet().iterator();
while (iter.hasNext())
{Object key = iter.next();Object val = map.get(key);
}

效率低,以后尽量少使用!
HashMap的遍历有两种常用的方法,那就是使用keyset及entryset来进行遍历,但两者的遍历速度是有差别的,下面请看实例:
public class HashMapTest
{public static void main(String[] args) {HashMap hashmap = new HashMap();for (int i = 0; i < 1000; i ) {hashmap.put("" i, "thanks");}long bs = Calendar.getInstance().getTimeInMillis();Iterator iterator = hashmap.keySet().iterator();while (iterator.hasNext()) {System.out.print(hashmap.get(iterator.next()));}System.out.println();System.out.println(Calendar.getInstance().getTimeInMillis() - bs);listHashMap();}public static void listHashMap(){java.util.HashMap hashmap = new java.util.HashMap();for (int i = 0; i < 1000; i ) {hashmap.put("" i, "thanks");}long bs = Calendar.getInstance().getTimeInMillis();java.util.Iterator it = hashmap.entrySet().iterator();while (it.hasNext()){java.util.Map.Entry entry = (java.util.Map.Entry) it.next();// entry.getKey() 返回与此项对应的键// entry.getValue() 返回与此项对应的值
              System.out.print(entry.getValue());}System.out.println();System.out.println(Calendar.getInstance().getTimeInMillis() - bs);}
}

 
对于keySet其实是遍历了2次,一次是转为iterator,一次就从hashmap中取出key所对于的value。而entryset只是遍历了第一次,他把key和value都放到了entry中,所以就快了。

Java中HashMap遍历的两种方式(本教程仅供研究和学习,不代表JAVA中文网观点)本篇文章链接地址:http://www.javaweb.cc/language/java/032291.shtml如需转载请注明出自JAVA中文网:http://www.javaweb.cc/

还是第一种好,简单。。。

转载于:https://www.cnblogs.com/jqmtony/p/3711442.html

[Java] HashMap遍历的两种方式相关推荐

  1. Java HashMap遍历的两种方式

    今天来搞一次HashMap 遍历的操作方式: 经过测试,方式一的效率要远高于方式二.,1000000条测试数据,第一种大概耗时20多秒,第二种耗时大概40多秒.所以,建议以后使用第一种方式. 直接上代 ...

  2. Java中HashMap遍历的两种方式

    第一种: Map map = new HashMap(); Iterator iter = map.entrySet().iterator(); while (iter.hasNext()) { Ma ...

  3. HashMap遍历的两种方式,推荐使用entrySet()

    转自:HashMap遍历的两种方式,推荐使用entrySet() 第一种: Map map = new HashMap(); Iterator iter = map.entrySet().iterat ...

  4. java hashmap遍历顺序_Java中HashMap遍历的两种方式

    第一种: Map map =  HashMap(); Iterator iter = map.entrySet().iterator(); (iter.hasNext()) { Map.Entry e ...

  5. Java 实现抽奖的两种方式

    Java实现抽奖的两种方式 方式一:随机数在哪个区间内返回区间下标 方式二:随机数加入区间点集合排序返回随机数下标 代码示例: ①抽奖入参类型为BigDecimal: package com.cfay ...

  6. HashMap遍历的三种方式

    HashMap遍历的三种方式 hashmap常用的三种方式分为 keySet遍历 就是把这个hashmap所有的key都拿出来放到一个set里,然后在通过这个key去通过hashmap的get方法去查 ...

  7. 创建和应用Java包文件的两种方式(转)

    创建和应用Java包文件的两种方式(转) <Java编程艺术>章节选登.作者:高永强 清华大学出版社 (即将出版) 12.1  包--package    ... 12.1.1  包命名规 ...

  8. java制作oracle程序,Java程序操作Oracle两种方式之简单实现

    Java程序操作Oracle两种方式之简单实现 1.通过JDBC-ODBC桥连接Oracle数据库 (1)创建odbc源,在控制面板->管理工具->数据源(odbc)中添加DSN,比如取名 ...

  9. python循环展示大写字母_python调用大写函数python中字典的循环遍历的两种方式

    开发中经常会用到对于字典.列表等数据的循环遍历,但是python中对于字典的遍历对于很多初学者来讲非常陌生,今天就来讲一下python中字典的循环遍历的两种方式. 注意: python2和python ...

最新文章

  1. DECLARE_DYNAMIC和IMPLEMENT_DYNAMIC宏
  2. Java 如何使用radio button保存值
  3. I/O复用之 EPOLLONESHOT 事件
  4. Netty从入门到精通-伪异步I/O编程
  5. 《庆余年》全集资源遭盗播,腾讯、爱奇艺、剧方联合回应...
  6. 在Qt界面中显示OpenCV图像
  7. LeetCode(852)——山脉数组的峰顶索引(JavaScript)
  8. word树状分支图_带你看懂市政管道工程图
  9. Could not resolve type alias ‘‘
  10. CSDN资源下载积分规则
  11. PDF怎么编辑修改,如何编辑PDF文字内容
  12. Java后端通过图片URL获取图片并保存
  13. TwinCAT 3 EtherCAT控制伺服
  14. ThoughtWorks 2018校招作业
  15. 小水智能-智能楼宇智慧建筑3D可视化系统,为房屋建设增加智能化
  16. php 16进制 声明,php16进制转换
  17. linux之getcwd函数解析,如何在Linux 中使用getcwd()函数
  18. 鹏鹏:You have 14 unapplied migration(s). Your project may not work properly。。。。报错!
  19. 脚本调试sh -x xx.sh、set -x
  20. 整型int数据的取值范围是怎么来的?

热门文章

  1. 工具 - 硕思SWF Decompiler5.3Build528 含补丁
  2. rocketmq之producer解析
  3. 原生JS DOM操作方法汇总
  4. ubuntu下配置eclipse3.3
  5. Intellij IDEA中的Mybatis Plugin破解
  6. PHP 获取当前类名、方法名、URL地址
  7. 在 Mac OSX 版的 LispBox 环境上安装配置 SBCL 详细过程
  8. 轻松得到C# ADO.NET的各种数据库连接字符串
  9. SVN在centos5.4的安装步骤:
  10. CCNA课堂练习一:路由器链路备份功能