第一种:

Map map =  HashMap();

Iterator iter = map.entrySet().iterator();

(iter.hasNext()) {

Map.Entry entry = (Map.Entry) iter.next();

Object key = entry.getKey();

Object val = entry.getValue();

}

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

第二种:

Map map =  HashMap();

Iterator iter = map.keySet().iterator();

(iter.hasNext()) {

Object key = iter.next();

Object val = map.get(key);

}

效率低,以后尽量少使用!

HashMap的遍历有两种常用的方法,那就是使用keyset及entryset来进行遍历,但两者的遍历速度是有差别的,下

面请看实例:

HashMapTest {

main(String[] args) ...{

HashMap hashmap =  HashMap();

( i = 0; i

hashmap.put("" i, "thanks");

}

bs = Calendar.getInstance().getTimeInMillis();

Iterator iterator = hashmap.keySet().iterator();

(iterator.hasNext()) ...{

System.out.print(hashmap.get(iterator.next()));

}

System.out.println();

System.out.println(Calendar.getInstance().getTimeInMillis() - bs);

listHashMap();

}

listHashMap() ...{

java.util.HashMap hashmap =  java.util.HashMap();

( i = 0; i

hashmap.put("" i, "thanks");

}

bs = Calendar.getInstance().getTimeInMillis();

java.util.Iterator it = hashmap.entrySet().iterator();

(it.hasNext()) ...{

java.util.Map.Entry entry = (java.util.Map.Entry) it.next();

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中HashMap遍历的两种方式相关推荐

  1. java如何实现多线程_Java中实现多线程的两种方式

    /** * 使用Thread类模拟4个售票窗口共同卖100张火车票的程序 * * 没有共享数据,每个线程各卖100张火车票 * * @author jiqinlin * */public class  ...

  2. java多线程区别_Java中实现多线程的两种方式之间的区别

    Java提供了线程类Thread来创建多线程的程序.其实,创建线程与创建普通的类的对象的操作是一样的,而线程就是Thread类或其子类的实例对象.每个Thread对象描述了一个单独的线程.要产生一个线 ...

  3. java类初始数组_java中数组初始化的三种方式是什么

    java中数组初始化的三种方式是:1.静态初始化,如[int a[] = {2, 0, 1, 9, 2020}]:2.动态初始化,如[int[] c = new int[4]]:3.默认初始化,如[i ...

  4. java new class 直接调用_java中创建对象的的两种方式具体解释,一个是new一个是调用Class类的newinstance方法?...

    展开全部 1.new 使用java的关键字new来创建对象实例.构造函数链中的所有构造函数都32313133353236313431303231363533e78988e69d833133333739 ...

  5. java 如何初始化数组_java中初始化数组的三种方式分别是什么

    三种初始化方式: 1.静态初始化:创建+赋值 2.动态初始化:先创建再赋值 3.默认初始化:创建之后若不赋值则会被赋对应数据类型的默认值 (视频教程推荐:java视频) 我们来看一下具体代码:publ ...

  6. java中创建两种线程的方式_java中创建线程的两种方式有什么区别?

    *** 一.创建线程 1.继承Thread类 定义类继承Thread, 重写run()方法, 将线程中要执行的代码写在run()方法中 创建该类对象, 调用start()方法就可以开启一条新线程, 新 ...

  7. java获取文件后缀_Java获取文件后缀的两种方式

    在对文件进行操作的时候,我们经常需要用到文件的后缀.但是Java API中并没有提供获取文件后缀的方法.下面的工具方法可以帮助我们实现这个目的. 方法1 代码示例: package org.4spac ...

  8. 实验四:使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用

    贺邦+原创作品转载请注明出处 + <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 实验目的: 使用库函数 ...

  9. sh执行文件 参数传递_详解shell中脚本参数传递的两种方式

    方式一:$0,$1,$2.. 采用$0,$1,$2..等方式获取脚本命令行传入的参数,值得注意的是,$0获取到的是脚本路径以及脚本名,后面按顺序获取参数,当参数超过10个时(包括10个),需要使用${ ...

最新文章

  1. 在哪里刷题_刷题过程中,这些坑你踩了几个?
  2. Java Stringbuilder简单介绍
  3. PHP案例 网页计数器设计
  4. 浅谈Floyd的三种用法 By cellur925
  5. [css] 为什么float会导致父元素塌陷
  6. Python | 不使用库函数将十进制数转换为二进制
  7. gps导航计算机毕业设计开题报告,GPS导航计算机毕业设计开题报告.doc
  8. KMP算法 --- 在文本中寻找目标字符串
  9. 一道看似简单的sql需求却难倒各路高手 - 你也来挑战下吗?
  10. html5选择时间,科技常识:HTML5新控件之日期和时间选择输入的实现代码
  11. 基于PCA的ORL人脸识别---Python
  12. 11:c# oop思想面向对象编程(by-朝夕)
  13. Sublime Text编辑器设置中文
  14. 如何在电脑上下载node.js并启动相应网易云服务器最全【该服务器见尚硅谷2021版微信小程序开发p20】
  15. MySQL第41题怎么评分_MySQL试题-测试、复习、查看
  16. 图象关于y轴对称是什么意思_关于x轴对称-图象关于y轴对称是什么函数
  17. 别做梦了,社交产品哪有那么容易成功
  18. PAT甲级真题 1064 完全二叉搜索树
  19. 【ELT.ZIP】OpenHarmony啃论文俱乐部——点燃主缓存压缩技术火花
  20. 【DL】基于pytorch搭建BP神经网络/人工神经网络/多层感知机/全连接神经网络的鸢尾花分类

热门文章

  1. 学习java的中文网站_学习java的网站有哪些
  2. python程序调试logging_python-logging模块的简单使用
  3. iphone7防水_什么是IP68防尘防水,您的手机是IP68级别手机,进水也不给保修
  4. 面向对象也可以搞单片机!
  5. c语言贪吃蛇运行代码,刚学C语言,想写一个贪吃蛇的代码
  6. python中、变量指向的对象可以发生变化吗_python中的引用传递,可变对象,不可变对象,list注意点...
  7. wxpython收费吗_wxPython 使用总结
  8. pdf导入ps颜色太浅_PDF 文件编辑转换难?或许你需要一个扫描全能王!
  9. python设计自定义函数_python
  10. php伪静态url运用,再谈 THINKPHP 伪静态url(URL访问模式)的设置