学习怎样遍历Java hashMap及不同方法的性能。

// hashMap的遍历
public void testHashMap() {
Map<String, String> map = new HashMap<String, String>();
for (int i = 1; i < 100001 ; i++) {
map.put(String.valueOf(i), "value1");
} //第一种:普遍使用,二次取值
System.out.println("通过Map.keySet遍历key和value:");
long t1 = System.currentTimeMillis();
for (String key : map.keySet()) {
System.out.println("key= " + key + " and value= " + map.get(key));
}
long t2 = System.currentTimeMillis(); //第二种
System.out.println("通过Map.entrySet使用iterator遍历key和value:");
long t3 = System.currentTimeMillis();
Iterator<Map.Entry<String, String>> it = map.entrySet().iterator();
while (it.hasNext()) {
Map.Entry<String, String> entry = it.next();
System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());
}
long t4 = System.currentTimeMillis(); //第三种:推荐,尤其是容量大时
System.out.println("通过Map.entrySet遍历key和value");
long t5 = System.currentTimeMillis();
for (Map.Entry<String, String> entry : map.entrySet()) {
System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());
}
long t6 = System.currentTimeMillis(); //第四种
System.out.println("通过Map.values()遍历所有的value,但不能遍历key");
long t7 = System.currentTimeMillis();
for (String v : map.values()) {
System.out.println("value= " + v);
}
long t8 = System.currentTimeMillis();
long t12 = t2 - t1;
long t34 = t4 - t3;
long t56 = t6 - t5;
long t78 = t8 - t7;
System.out.println("--------总耗费时间----------");
System.out.println(t12);
System.out.println(t34);
System.out.println(t56);
System.out.println(t78);
}

通过运行发现:

四种方式的的运行时间分别为:

通过第三种和第四种的方式是比较快的。第四种的缺点是不能遍历hashMap的key值。

四种遍历hashMap的方法及比较的更多相关文章

  1. Java中四种遍历List的方法

    package com.ietree.basic.collection.loop; import java.util.ArrayList; import java.util.Iterator; imp ...

  2. HashMap的四种遍历方法,及效率比较(简单明了)

    https://yq.aliyun.com/ziliao/210955 public static void main(String[] args) { HashMap<Integer, Str ...

  3. HashMap的四种遍历!

    HashMap的四种遍历 import java.util.Collection; import java.util.HashMap; import java.util.Map; import jav ...

  4. Map的四种遍历

    //Map的四种遍历方法 public static void main(String[] args) { Map<String, String> map = new HashMap< ...

  5. [集合]Map的 entrySet() 详解以及用法(四种遍历map的方式)

    Entry 由于Map中存放的元素均为键值对,故每一个键值对必然存在一个映射关系. Map中采用Entry内部类来表示一个映射项,映射项包含Key和Value (我们总说键值对键值对, 每一个键值对也 ...

  6. java map的四种遍历

    四种遍历: public static void main(String[] args) { Map<String, String> map = new HashMap<String ...

  7. list的四种遍历方式

    1.手先增强for循环和iterator遍历的效果是一样的,也就说 增强for循环的内部也就是调用iteratoer实现的,但是增强for循环 有些缺点,例如不能在增强循环里动态的删除集合内容.不能获 ...

  8. Map 的四种遍历方式

    Map 的四种遍历方式 import java.util.HashMap; import java.util.Iterator; import java.util.Map; public class ...

  9. java集合四种遍历方式

    package conection; import java.util.Iterator;import java.util.LinkedList;import java.util.List; publ ...

随机推荐

  1. Rancher 添加主机无法显示、添加主机无效的解决办法

    在 Rancher UI 中,添加主机,在 Shell ssh 运行了,然后 点击 “关闭” 按钮,发现没有显示如何主机. 第一步,先去查看应用是否正常,就是 应用 - 全部应用 如果显示是 unhe ...

  2. 读高性能JavaScript编程 第三章

    第三章  DOM Scripting  最小化 DOM 访问,在 JavaScript 端做尽可能多的事情. 在反复访问的地方使用局部变量存放 DOM 引用. 小心地处理 HTML 集合,因为他们表现 ...

  3. jquery实现根据所选时间生成页面元素

    最近做项目,碰见这样的一个需求 根据所选的时间动态生成值班安排,日期格式需要带星期,如: 代码如下: 1.首先放两个文本框,时间插件用的是My97DataPicker,再放一个table,简单设置一下 ...

  4. Python学习(七)面向对象 ——继承和多态

    Python 类的继承和多态 Python 类的继承 在OOP(Object Oriented Programming)程序设计中,当我们定义一个class的时候,可以从某个现有的class 继承,新 ...

  5. LeetCode 休闲计划

    老年退役选手的 LeetCode 休闲之旅 前言 不知不觉两年多的大学时光悄然流逝,浑浑噩噩的状态似乎从来没有离开过自己. 这两年刷题似乎一直是常态.在退役之后的现在,深感有些东西一段时间没有接触,很 ...

  6. UML学生成绩管理系统需求分析

    学生成绩管理系统工作室高校教育工作的一项重要内容.教务管理工作是指学校管理人员按照一定的教育方针,运用先进的管理手段,组织.协调.指挥并指导各用户活动,一边高效率.高质量地完成各项教学任务,完成国家所 ...

  7. 【Python求助】在eclipse和pycharm中,通过adb install安装中文名字APK时老是报错,如何解决

    # -*- coding: utf-8 -*- import os import sys import subprocess import time from uiautomator import d ...

  8. BZOJ 1076 奖励关 状态压缩DP

    题目链接: https://www.lydsy.com/JudgeOnline/problem.php?id=1076 题目大意: 你正在玩你最喜欢的电子游戏,并且刚刚进入一个奖励关.在这个奖励关里, ...

  9. BZOJ4894:天赋(矩阵树定理)

    Description 小明有许多潜在的天赋,他希望学习这些天赋来变得更强.正如许多游戏中一样,小明也有n种潜在的天赋,但有一些天赋必须是要有前置天赋才能够学习得到的. 也就是说,有一些天赋必须是要在 ...

  10. javascript:void(0)的问题

    最近看了好几个关于<a>标签和javascript:void(0)的帖子,谨记于此,以资查阅. 注:以下代码未经全面测试,但每一种方法可能会出现的情况都基本做了说明. 在做页面时,如果想做 ...