第一种:

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中,所以就快了。

注:Hashtable的遍历方法和以上的差不多!

java调用xdotool_【转】java Map 遍历速度最优解相关推荐

  1. java 轻量级map,java Map 遍历速度最优解

    java Map 遍历速度最优解 第一种: Map map = new HashMap(); Iterator iter = map.entrySet().iterator(); while (ite ...

  2. java map遍历最快_Java Map遍历速度最优解

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

  3. mysql循环map_java Map 遍历速度最优解

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

  4. 安卓JAVA调用lua_android中java与lua的相互调用

    Android Studio Lua环境配置 开发环境 1. Android Studio 3.5 2. java sdk: 1.8.0 3.android sdk:28 配置环境 添加lua支持语法 ...

  5. java 调用存储过程structdescriptor,Java调用oracle存储过程,集合入参的正确姿势

    这是我工作之前遇到的一个需求,Java调用存储过程,入参是集合.踩了一些坑,决定写个干货,和大家分享下. 项目使用的oracle版本: com.oracle ojdbc6 11.2.0.1.0 sys ...

  6. javascript for java 一个可以让用户通过JAVA调用JAVASCRIPT的JAVA包

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 今天在看 ...

  7. webview java调用js_android WebView java与js相互调用

    android WebView java与js相互调用 发布时间:2020-07-14 00:42:42 来源:51CTO 阅读:454 作者:向往宇宙 android webView js 使用 1 ...

  8. Java调用命令行+java生成词云

    java调用命令行 package com.weizu.control; import java.io.BufferedReader; import java.io.InputStreamReader ...

  9. java调用oracle过程,JAVA调用ORACLE存储过程报错

    当前位置:我的异常网» Java Web开发 » JAVA调用ORACLE存储过程报错 JAVA调用ORACLE存储过程报错 www.myexceptions.net  网友分享于:2015-07-1 ...

最新文章

  1. 啊D扫肉鸡+无远控双开XP3389 termsrvhack.dll_本地测试
  2. JBoss Modules 模块描述文件解析
  3. Java线程池框架核心代码分析
  4. CentOS下配置多个Tomcat同时运行 本篇文章来源于 Linux公社网站(www.linuxidc.com)
  5. 利用JS实现点击按钮后图片自动切换
  6. lisp一键室内标注_CAD插件:自动标注面积lisp程序
  7. ElementUI 文件上传传递额外参数
  8. python爬虫微博评论图片_python爬虫爬取微博评论
  9. android ogg转mp3,MP3提取转换器
  10. 2019-10-16 博客热门文章
  11. net.sf.json
  12. c语言输出时出现了【Error】Id returned 1 exit status是什么原因
  13. 前端学习-JavaScript基础(ES6)
  14. 如何将class文件打包成.jar
  15. Python免费快速接入图灵机器人接口
  16. SDI程序和MDI程序区别
  17. javafx 带图片的按钮菜单_怎么制作ICON图标 图片转ICON图标方法
  18. 问卷星文本导入问题实现
  19. 4种搜集来的Axure原型上传+在线预览的方法
  20. 5-AT命令交互之-APN

热门文章

  1. SAP获利能力报表常用Tcode的区别
  2. 从IT人士到IT经理倪应该学会的30 项技能
  3. SAP系统的配置传输
  4. 学电脑从新手到高手_小白如何学手绘插画?新手到高手必学的四套教程【614期】...
  5. java spring 登录验证_详解使用Spring3 实现用户登录以及权限认证
  6. php上传文件 不移动,move_uploaded_file()为什么无法移动上传的文件?
  7. 三位数的茎叶图怎么看_霍山石斛哪家好?霍山石斛怎么选择?
  8. Auto Lisp 标注子样式_FAIR 开放大规模细粒度词汇级标记数据集 LVIS,连披萨里的菠萝粒都能完整标注...
  9. python中的__call__和__repr__魔术方法
  10. python list的一个面试题