第一种:通过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的四种访问方式相关推荐

  1. HashMap的四种同步方式

    1.使用synchronized关键字 synchronized(anObject) { value = map.get(key); } //将获取方法锁住 Map m = Collections.s ...

  2. HashMap遍历 (四种方法+7种实现方式)

    HashMap遍历 (四种方法+7种实现方式) HashMap遍历从大的方向来说,可分为一下4类: 1.迭代器(Iterator)方式: 2.foreach方式: 3.lambda表达式(JDK 1. ...

  3. HashMap遍历的四种常用方式

    古人云:温故而知新. 最近闲来无事就去翻阅了一下之前的一些基础java知识点.本想着随便看看,然而就发现有了意外收获.比如本文所讲HashMap遍历的四种常用方式. 大伙们一起学习一起进步,记得点赞关 ...

  4. Java的四种引用方式

    Java的四种引用方式 java内存管理分为内存分配和内存回收,都不需要程序员负责,垃圾回收的机制主要是看对象是否有引用指向该对象. java对象的引用包括   强引用,软引用,弱引用,虚引用 Jav ...

  5. java基础(七) 深入解析java四种访问权限

    戳上面的蓝字关注我们哦! 精彩内容 精选java等全套视频教程 精选java电子图书 大数据视频教程精选 java项目练习精选 引言   Java中的访问权限理解起来不难,但完全掌握却不容易,特别是4 ...

  6. java基础(七) java四种访问权限

    ###引言 Java中的访问权限理解起来不难,但完全掌握却不容易,特别是4种访问权限并不是任何时候都可以使用.下面整理一下,在什么情况下,有哪些访问权限可以允许选择. ###一.访问权限简介 访问权限 ...

  7. OAuth2.0的四种授权方式

    在OAuth2.0中,OAuth2.0 provider负责保护暴露在外的资源,第三方应用客户端Client可以独立的或代表用户Owner来访问这些受保护的资源,provider提供token令牌的管 ...

  8. php xml 四种,xml中常见的四种解析方式是什么?

    xml解析方式有:1.DOM解析方法,可以对xml文档进行修改操作:2.SAX解析方法,解析速度快,占用内存少:3.JDOM解析方法,查找方便:4.DOM4J解析方法,解析XML的速度快. 在XML的 ...

  9. 二叉树的四种遍历方式

    二叉树的四种遍历方式: 二叉树的遍历(traversing binary tree)是指从根结点出发,按照某种次序依次访问二叉树中所有的结点,使得每个结点被访问依次且仅被访问一次. 四种遍历方式分别为 ...

最新文章

  1. php日志接入rsyslog,rsyslog和在PHP上的应用
  2. 目标检测的渐进域自适应,优于最新SOTA方法
  3. 给网游写一个挂吧(四) – 调用游戏函数
  4. python解释器的提示符是shell嘛_从PowerShell语法错误运行Python脚本
  5. [html] H5的Web Storage带来什么好处?
  6. SpringBoot 过滤器、拦截器、监听器对比及使用场景!
  7. 前端开发 标签的属性和值 0228 需演练
  8. extern C用法详解
  9. html 在线汉字转拼音,JavaScript实现汉字转换为拼音及缩写的方法示例
  10. js获取本地时间与网络时间
  11. 毕业设计 微信小程序 外卖点餐平台
  12. VB.net 播放 WAV音乐
  13. android 百度地图定位图标素材,百度地图定位开发图标大全 百度地图开发可以用到的一些实用标注/图标(baidu map development) - 下载 - 搜珍网...
  14. Mono.Cecil使用示例之获取源文件路径
  15. 零代码上线小布对话技能:技能平台的实践与思考
  16. c语言rst关系,为什么服务器突然回复RST——小心网络中的安全设备
  17. FFMPEG批量绿幕色度抠像BAT脚本实现
  18. 外卖订单爬虫 定时自动抓取三大外卖平台上商家订单
  19. 零基础学 Python 有什么建议?
  20. Linux HID分析

热门文章

  1. sockaddr_in中sin_zero的意义,以及sockaddr_in sockaddr in_addr区别联系
  2. About 4B/5B
  3. C/C++中rand()函数产生随机数的用法
  4. 用camelot读取表格_如何使用Camelot从PDF提取表格
  5. Unable to find the ncurses libraries的解决办法
  6. python generator_Python Generator漫谈
  7. python tcp服务器_python实现TCP服务器端与客户端的方法详解
  8. python圆面积函数_python函数题
  9. pgsql vs mysql查询_对比平台--SQL Server Vs PostgreSQL
  10. python获得当前目录_python如何获取当前工程根目录