`

HashMap遍历的两种方式

 
阅读更多
第一种:
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中,所以就快了。

引:http://ludaojuan21.iteye.com/blog/243475
分享到:
评论

相关推荐

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

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

    HashMap遍历

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

    FLEX HashMap遍历并取到需要的值

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

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

    最后一种方式是遍历entrySet的迭代器。这允许我们在循环中直接访问Map.Entry对象,从而同时获取键和值。 在选择遍历HashMap的方法时,应根据实际需求来决定。如果只需要遍历值,方式二和五更简洁;如果需要同时...

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

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

    另一种遍历Map的方式

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

    java中Map的两种遍历方法

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

    JAVA遍历Map所有元素.doc

    当然,对于小规模的Map,这两种方式的性能差异可能并不明显,但在优化代码时,我们应始终考虑长远的性能影响。 总结来说,遍历Java Map时,优先选择`entrySet()`方法,它不仅提供了键值对的直接访问,而且在性能上...

    java HashMap原理分析

    2. collisions处理:当两个不同的Key发生哈希碰撞时,HashMap会将它们存储在同一个链表中,在查找时,HashMap会遍历链表,找到符合条件的Entry对象。 HashMap的查询效率非常高,因为它可以通过哈希函数直接定位到...

    HashMap总结

    HashMap 是 Java 中的一种常用的数据结构,用于存储键值对(Key-Value)数据。下面是 HashMap 的一些特性和使用方法总结。 键(Key)的特性 1. 键可以为 null:HashMap 中的键可以为 null,这意味着可以将 null ...

    如何得到hashmap的索引

    根据提供的内容,我们可以了解到遍历`HashMap`主要有两种方式:使用`keySet()`方法和使用`entrySet()`方法。 1. **使用keySet()方法** ```java Map map = new HashMap(); Iterator iter = map.keySet()....

    HashMap介绍和使用

    所有的复杂数据结构都可以基于这两种基本结构构建出来,HashMap也不例外。 **1.1 数组和链表结合** HashMap内部采用数组加链表(或红黑树)的形式存储数据,这种结构称为“链表散列”。数组作为主存储结构,而链表...

    HASHMAP排序功能描述

    有两种主要方法可以对HashMap进行排序: - **使用LinkedHashMap** LinkedHashMap是HashMap的一个子类,它维护了元素的插入顺序或者访问顺序。如果想要按照插入顺序排序,直接使用LinkedHashMap即可。如果需要按照...

    hashmap使用实例

    6. **遍历HashMap**:有两种方式遍历HashMap,一是通过`entrySet()`获取键值对的迭代器,二是通过`keySet()`获取键的迭代器再获取对应的值。 ```java for (Map.Entry, String&gt; entry : map.entrySet()) { System....

    HashMap的数据结构

    HashMap在内部实现上基于哈希表,也称为散列表,它提供了一种快速查找、插入和删除数据的方法,平均时间复杂度为O(1)。 HashMap的工作原理基于哈希函数,它将键(Key)转化为一个哈希码(Hash Code),这个哈希码...

    hashmap 实例

    HashMap 是 Java 中常用的一种数据结构,属于 Java.util 包下的类,它是基于哈希表实现的。在本文中,我们将深入理解 HashMap 的实例及其工作原理,并与其他数据结构如 Vector、ArrayList、LinkedList 和 Hashtable ...

    java遍历JSON树

    在处理Web应用程序中的数据时,JSON(JavaScript Object Notation)是一种非常常见的数据格式。它轻量级且易于读写,因此广泛应用于前后端的数据交互中。对于Java开发者来说,能够熟练地操作JSON数据是必不可少的...

    Java HashMap类详解

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

    遍历学期学科

    在Java中,有两种主要的方式来遍历HashSet: 1. 使用迭代器(Iterator): 迭代器是Java集合框架提供的标准遍历方式,适用于所有实现Iterable接口的数据结构,包括HashSet。以下是一个简单的示例: ```java Set...

    Java中HashMap的工作机制

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

Global site tag (gtag.js) - Google Analytics