`

Java中HashMap遍历的两种方式

 
阅读更多

原文地址: http://www.javaweb.cc/language/java/032291.shtml
第一种:
  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中,所以就快了。

分享到:
评论

相关推荐

    Java HashMap 如何正确遍历并删除元素的方法小结

    Java HashMap 提供了两种遍历方法:foreach 模式和迭代器遍历。 1. foreach 模式 foreach 模式是最简单的遍历方法,适用于不需要修改 HashMap 内元素的遍历,只需要获取元素的键/值的情况。 ```java HashMap, V&gt; ...

    HashMap遍历

    ### HashMap遍历详解 在Java编程中,`HashMap`是一种常用的数据结构,它实现了`Map`接口,提供了基于哈希表的存储方式,允许我们快速地查找、插入和删除键值对。对于`HashMap`的遍历,是进行数据处理和分析时不可或...

    java中Map的两种遍历方法

    本文将详细探讨在Java中遍历`Map`的两种常用方法:通过`keySet()`方法和通过`entrySet()`方法。 ### 一、通过`keySet()`方法遍历`Map` #### 方法概述 `keySet()`方法返回一个包含`Map`中所有键的`Set`视图。通过...

    Java中HashMap的工作机制

    在Java中,HashMap是一种广泛使用的数据结构,它基于哈希表的Map接口实现。哈希表是一种通过哈希过程将键映射到特定位置的数据结构,该位置存储了键对应的值。在详细探讨Java中HashMap的工作机制之前,首先需要理解...

    java遍历JSON树

    本文将详细介绍如何在Java中遍历一个JSON树,并解析其内部结构。 #### 二、所需库及导入 在Java中处理JSON通常需要借助第三方库,例如`json.org`或`fastjson`等。本示例代码使用的是`net.sf.json`包,该包来自`...

    FLEX HashMap遍历并取到需要的值

    标题中提到的"FLEX HashMap遍历并取到需要的值",是指在编程中如何使用Java语言的HashMap集合类型进行遍历,并且从中取得符合特定条件的数据值。HashMap是一种基于哈希表的Map接口实现,它允许我们存储键值对,其中...

    java HashMap原理分析

    Java HashMap是一种基于哈希表的数据结构,它的存储原理是通过将Key-Value对存储在一个数组中,每个数组元素是一个链表,链表中的每个元素是一个Entry对象,Entry对象包含了Key、Value和指向下一个Entry对象的引用。...

    js 版 java hashmap

    JavaScript中的HashMap并不是内置的数据结构,但在许多开发场景中,我们需要实现类似Java中HashMap的功能,用于存储键值对数据。在JavaScript中,我们通常使用对象(Object)来模拟HashMap的行为,因为对象的属性名...

    map遍历的四种方式及性能比较

    此外,使用`Iterator`可以在遍历过程中安全地删除元素,而其他两种方式无法做到这一点。从性能上看,该方法与使用增强for循环遍历`keys`或`values`(方法二)具有相似的表现。 #### 方法四:通过键查找值遍历 这种...

    Java HashMap类详解

    HashMap 和 HashSet 是 Java Collection Framework 的两个重要成员,虽然它们实现的接口规范不同,但它们底层的 Hash 存储机制完全一样。甚至 HashSet 本身就采用 HashMap 来实现的。 2. Hash 存储机制 HashMap ...

    使用多种方式实现遍历HashMap的方法

    在Java编程中,HashMap是一种常用的存储键值对的数据结构。遍历HashMap是常见的操作,本文将介绍六种不同的方法来实现这一功能。 1. **方式一:使用KeySet方法** KeySet方法返回HashMap中所有键的Set视图。由于Set...

    另一种遍历Map的方式

    Map是一种常用的数据结构,在Java中有多种遍历Map的方式。今天,我们来讨论一种遍历Map的方式,即使用Map.Entry和Map.entrySet()。 Map.Entry是什么? ---------------- Map.Entry是一个接口,表示一个映射项,...

    java遍历Map对象的说有数据

    这两种方法各有优缺点,具体选择哪种方式取决于实际需求和个人偏好。 对于Java开发者来说,了解并掌握这些基本操作是非常重要的,它们能够帮助我们在处理键值对时更加高效和简洁。无论是进行数据处理、调试还是日志...

    Java 实例 - 遍历 HashTable 的键值源代码+详细教程.zip

    遍历`HashTable`通常有两种方法:一种是通过` Enumeration`接口,另一种是使用Java 5及以上版本引入的`Iterator`接口。 1. **使用`Enumeration`遍历**: `HashTable`提供两个方法,`keys()`返回键的枚举对象,`...

    JAVA遍历Map所有元素.doc

    在Java编程中,Map接口是数据结构中非常重要的一个部分,它存储键值对的数据。遍历Map的所有元素是常见的操作,特别是在处理数据或者进行...同时,理解这两种遍历方式的工作原理,可以帮助我们更好地理解和优化代码。

    Java Map遍历方式的选择

    Java Map的遍历方式在实际应用中是一个重要的性能优化考虑因素。常见的遍历方式有三种:keySet、entrySet和values。很多开发者推荐使用entrySet,认为它比keySet更高效,因为entrySet能一次性获取键值对,避免了额外...

    浅析java中遍历map的两种方式

    遍历Map是开发过程中常见的操作,通常有两种主要的方法:通过Entry Set和通过Key Set。下面将详细介绍这两种遍历方式。 1. 通过Entry Set遍历Map Map的`entrySet()`方法返回一个包含Map中所有键值对的Set视图。这...

Global site tag (gtag.js) - Google Analytics