HashMap的四种访问方式
第一种:通过Map.entrySet使用iterator遍历key和value
1 public void visit_1(HashMap<String,Integer> hm){ 2 Iterator<Map.Entry<String,Integer>> it = hm.entrySet().iterator(); 3 while(it.hasNext()){ 4 Map.Entry<String ,Integer> entry = it.next(); 5 String key = entry.getKey(); 6 Integer value = entry.getValue(); 7 } 8 }
第二种:通过Key来遍历value
1 public void visit_2(HashMap<String,Integer> hm){ 2 for (String key:hm.keySet()){ 3 Integer value = hm.get(key); 4 } 5 }
第三种:通过Map.Entry遍历key和value
1 public void visit_3(HashMap<String,Integer> hm){ 2 for(Map.Entry<String,Integer> entry:hm.entrySet()){ 3 String key = entry.getKey(); 4 Integer value = entry.getValue(); 5 } 6 }
第四种:通过Map.keySet使用iterator遍历key和value
1 public void visit_4(HashMap<Integer,String> hm){ 2 long startTime = System.currentTimeMillis(); 3 Iterator<Integer> it = hm.keySet().iterator(); 4 while(it.hasNext()){ 5 Integer key = it.next(); 6 String value = hm.get(key); 7 } 8 System.out.println("visit_4 10000000 entry:" 9 + (System.currentTimeMillis()-startTime) + " milli seconds"); 10 }
四种方法比较:
1 package chapter08.c86.c862; 2 3 import java.util.HashMap; 4 import java.util.Iterator; 5 import java.util.Map; 6 7 /** 8 * Created by ceoicac on 2017/8/12 10:22. 9 */ 10 public class HashMapVisitTest { 11 public void visit_1(HashMap<Integer,String> hm){ 12 long startTime = System.currentTimeMillis(); 13 Iterator<Map.Entry<Integer,String>> it = hm.entrySet().iterator(); 14 while(it.hasNext()){ 15 Map.Entry<Integer,String> entry = it.next(); 16 Integer key = entry.getKey(); 17 String value = entry.getValue(); 18 } 19 System.out.println("visit_1 10000000 entry:" 20 + (System.currentTimeMillis()-startTime) + " milli seconds"); 21 } 22 public void visit_2(HashMap<Integer,String> hm){ 23 long startTime = System.currentTimeMillis(); 24 for (Integer key:hm.keySet()){ 25 String value = hm.get(key); 26 } 27 System.out.println("visit_1 10000000 entry:" 28 + (System.currentTimeMillis()-startTime) + " milli seconds"); 29 } 30 public void visit_3(HashMap<Integer,String> hm){ 31 long startTime = System.currentTimeMillis(); 32 for(Map.Entry<Integer,String> entry : hm.entrySet()){ 33 Integer key = entry.getKey(); 34 String value = entry.getValue(); 35 } 36 System.out.println("visit_1 10000000 entry:" 37 + (System.currentTimeMillis()-startTime) + " milli seconds"); 38 } 39 public void visit_4(HashMap<Integer,String> hm){ 40 long startTime = System.currentTimeMillis(); 41 Iterator<Integer> it = hm.keySet().iterator(); 42 while(it.hasNext()){ 43 Integer key = it.next(); 44 String value = hm.get(key); 45 } 46 System.out.println("visit_1 10000000 entry:" 47 + (System.currentTimeMillis()-startTime) + " milli seconds"); 48 } 49 public static void main(String [] args){ 50 HashMap<Integer,String> hm = new HashMap<>(); 51 for(int i = 1;i <= 10000000;++i){ 52 hm.put(i,"num: " + i); 53 } 54 new HashMapVisitTest().visit_1(hm); 55 new HashMapVisitTest().visit_2(hm); 56 new HashMapVisitTest().visit_3(hm); 57 new HashMapVisitTest().visit_4(hm); 58 59 } 60 }
结果:
作者:ceoicac
来源:CSDN
原文:https://blog.csdn.net/ceoicac/article/details/77113068
版权声明:本文为博主原创文章,转载请附上博文链接!
转载于:https://www.cnblogs.com/KeepDoingSomething/p/9904140.html
HashMap的四种访问方式相关推荐
- HashMap的四种同步方式
1.使用synchronized关键字 synchronized(anObject) { value = map.get(key); } //将获取方法锁住 Map m = Collections.s ...
- HashMap遍历 (四种方法+7种实现方式)
HashMap遍历 (四种方法+7种实现方式) HashMap遍历从大的方向来说,可分为一下4类: 1.迭代器(Iterator)方式: 2.foreach方式: 3.lambda表达式(JDK 1. ...
- HashMap遍历的四种常用方式
古人云:温故而知新. 最近闲来无事就去翻阅了一下之前的一些基础java知识点.本想着随便看看,然而就发现有了意外收获.比如本文所讲HashMap遍历的四种常用方式. 大伙们一起学习一起进步,记得点赞关 ...
- Java的四种引用方式
Java的四种引用方式 java内存管理分为内存分配和内存回收,都不需要程序员负责,垃圾回收的机制主要是看对象是否有引用指向该对象. java对象的引用包括 强引用,软引用,弱引用,虚引用 Jav ...
- java基础(七) 深入解析java四种访问权限
戳上面的蓝字关注我们哦! 精彩内容 精选java等全套视频教程 精选java电子图书 大数据视频教程精选 java项目练习精选 引言 Java中的访问权限理解起来不难,但完全掌握却不容易,特别是4 ...
- java基础(七) java四种访问权限
###引言 Java中的访问权限理解起来不难,但完全掌握却不容易,特别是4种访问权限并不是任何时候都可以使用.下面整理一下,在什么情况下,有哪些访问权限可以允许选择. ###一.访问权限简介 访问权限 ...
- OAuth2.0的四种授权方式
在OAuth2.0中,OAuth2.0 provider负责保护暴露在外的资源,第三方应用客户端Client可以独立的或代表用户Owner来访问这些受保护的资源,provider提供token令牌的管 ...
- php xml 四种,xml中常见的四种解析方式是什么?
xml解析方式有:1.DOM解析方法,可以对xml文档进行修改操作:2.SAX解析方法,解析速度快,占用内存少:3.JDOM解析方法,查找方便:4.DOM4J解析方法,解析XML的速度快. 在XML的 ...
- 二叉树的四种遍历方式
二叉树的四种遍历方式: 二叉树的遍历(traversing binary tree)是指从根结点出发,按照某种次序依次访问二叉树中所有的结点,使得每个结点被访问依次且仅被访问一次. 四种遍历方式分别为 ...
最新文章
- php日志接入rsyslog,rsyslog和在PHP上的应用
- 目标检测的渐进域自适应,优于最新SOTA方法
- 给网游写一个挂吧(四) – 调用游戏函数
- python解释器的提示符是shell嘛_从PowerShell语法错误运行Python脚本
- [html] H5的Web Storage带来什么好处?
- SpringBoot 过滤器、拦截器、监听器对比及使用场景!
- 前端开发 标签的属性和值 0228 需演练
- extern C用法详解
- html 在线汉字转拼音,JavaScript实现汉字转换为拼音及缩写的方法示例
- js获取本地时间与网络时间
- 毕业设计 微信小程序 外卖点餐平台
- VB.net 播放 WAV音乐
- android 百度地图定位图标素材,百度地图定位开发图标大全 百度地图开发可以用到的一些实用标注/图标(baidu map development) - 下载 - 搜珍网...
- Mono.Cecil使用示例之获取源文件路径
- 零代码上线小布对话技能:技能平台的实践与思考
- c语言rst关系,为什么服务器突然回复RST——小心网络中的安全设备
- FFMPEG批量绿幕色度抠像BAT脚本实现
- 外卖订单爬虫 定时自动抓取三大外卖平台上商家订单
- 零基础学 Python 有什么建议?
- Linux HID分析
热门文章
- sockaddr_in中sin_zero的意义,以及sockaddr_in sockaddr in_addr区别联系
- About 4B/5B
- C/C++中rand()函数产生随机数的用法
- 用camelot读取表格_如何使用Camelot从PDF提取表格
- Unable to find the ncurses libraries的解决办法
- python generator_Python Generator漫谈
- python tcp服务器_python实现TCP服务器端与客户端的方法详解
- python圆面积函数_python函数题
- pgsql vs mysql查询_对比平台--SQL Server Vs PostgreSQL
- python获得当前目录_python如何获取当前工程根目录