[Java] HashMap遍历的两种方式
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遍历的两种方式相关推荐
- Java HashMap遍历的两种方式
今天来搞一次HashMap 遍历的操作方式: 经过测试,方式一的效率要远高于方式二.,1000000条测试数据,第一种大概耗时20多秒,第二种耗时大概40多秒.所以,建议以后使用第一种方式. 直接上代 ...
- Java中HashMap遍历的两种方式
第一种: Map map = new HashMap(); Iterator iter = map.entrySet().iterator(); while (iter.hasNext()) { Ma ...
- HashMap遍历的两种方式,推荐使用entrySet()
转自:HashMap遍历的两种方式,推荐使用entrySet() 第一种: Map map = new HashMap(); Iterator iter = map.entrySet().iterat ...
- java hashmap遍历顺序_Java中HashMap遍历的两种方式
第一种: Map map = HashMap(); Iterator iter = map.entrySet().iterator(); (iter.hasNext()) { Map.Entry e ...
- Java 实现抽奖的两种方式
Java实现抽奖的两种方式 方式一:随机数在哪个区间内返回区间下标 方式二:随机数加入区间点集合排序返回随机数下标 代码示例: ①抽奖入参类型为BigDecimal: package com.cfay ...
- HashMap遍历的三种方式
HashMap遍历的三种方式 hashmap常用的三种方式分为 keySet遍历 就是把这个hashmap所有的key都拿出来放到一个set里,然后在通过这个key去通过hashmap的get方法去查 ...
- 创建和应用Java包文件的两种方式(转)
创建和应用Java包文件的两种方式(转) <Java编程艺术>章节选登.作者:高永强 清华大学出版社 (即将出版) 12.1 包--package ... 12.1.1 包命名规 ...
- java制作oracle程序,Java程序操作Oracle两种方式之简单实现
Java程序操作Oracle两种方式之简单实现 1.通过JDBC-ODBC桥连接Oracle数据库 (1)创建odbc源,在控制面板->管理工具->数据源(odbc)中添加DSN,比如取名 ...
- python循环展示大写字母_python调用大写函数python中字典的循环遍历的两种方式
开发中经常会用到对于字典.列表等数据的循环遍历,但是python中对于字典的遍历对于很多初学者来讲非常陌生,今天就来讲一下python中字典的循环遍历的两种方式. 注意: python2和python ...
最新文章
- DECLARE_DYNAMIC和IMPLEMENT_DYNAMIC宏
- Java 如何使用radio button保存值
- I/O复用之 EPOLLONESHOT 事件
- Netty从入门到精通-伪异步I/O编程
- 《庆余年》全集资源遭盗播,腾讯、爱奇艺、剧方联合回应...
- 在Qt界面中显示OpenCV图像
- LeetCode(852)——山脉数组的峰顶索引(JavaScript)
- word树状分支图_带你看懂市政管道工程图
- Could not resolve type alias ‘‘
- CSDN资源下载积分规则
- PDF怎么编辑修改,如何编辑PDF文字内容
- Java后端通过图片URL获取图片并保存
- TwinCAT 3 EtherCAT控制伺服
- ThoughtWorks 2018校招作业
- 小水智能-智能楼宇智慧建筑3D可视化系统,为房屋建设增加智能化
- php 16进制 声明,php16进制转换
- linux之getcwd函数解析,如何在Linux 中使用getcwd()函数
- 鹏鹏:You have 14 unapplied migration(s). Your project may not work properly。。。。报错!
- 脚本调试sh -x xx.sh、set -x
- 整型int数据的取值范围是怎么来的?