`

遍历HashMap的两种方式比较

    博客分类:
  • J2SE
 
阅读更多

      HashMap存储的是键值对,所以一般情况下其遍历同List及Set应该有所不同.

但java巧妙的将HashMap的键值对作为一个整体对象(java.util.Map.Entry)进行处理,这优化了HashMap的遍历处理,使其遍历同List、Set并无差异.

 

第一种:(只遍历一次,将key及value都放到entry中,效率高)

Map map = new HashMap(); 
Iterator iter = map.entrySet().iterator(); 
while (iter.hasNext()) { 
    java.util.Map.Entry entry = (Map.Entry) iter.next(); 
    Object key = entry.getKey(); 
    Object val = entry.getValue(); 
}

 

第二种:(遍历2次,第一次是获取iterator时,第二次是从hashmap中取出key所对应的value.效率低)

Map map = new HashMap(); 
Iterator iter = map.keySet().iterator(); 
while (iter.hasNext()) { 
    Object key = iter.next(); 
    Object val = map.get(key); 
}

 

1
1
分享到:
评论
1 楼 chenwq 2011-10-23  
意想不到本文有那么多访问量...

相关推荐

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

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

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

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

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

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

    HashMap遍历

    为了验证这一点,我们可以使用时间差来比较两种遍历方式的效率: ```java Map, String> map = new HashMap(); for (int i = 0; i ; i++) { map.put("key" + i, "value" + i); } long startTime = System....

    另一种遍历Map的方式

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

    HashMap总结

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

    JAVA遍历Map所有元素.doc

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

    java中Map的两种遍历方法

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

    hashmap使用实例

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

    如何得到hashmap的索引

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

    HashMap的数据结构

    6. **迭代性能**:由于HashMap使用链表解决哈希碰撞,如果某个哈希桶内的链表过长(例如,出现大量键的哈希码冲突),那么在遍历HashMap时,性能会下降到接近于O(n),其中n是链表的长度。 7. **键的唯一性**:...

    hashmap 实例

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

    FLEX HashMap遍历并取到需要的值

    遍历HashMap意味着我们需要依次访问集合中的每一个键值对,并根据需要对它们进行操作。 描述中提到的"FLEXHashMap遍历并取到需要的值在项目中用到了HashMap,需要遍历,并取到需要的值",这表明了在具体的项目实践...

    易语言HashMap类

    7. **枚举所有键**:通过枚举器,开发者可以按顺序遍历HashMap中的所有键,这对于遍历整个哈希表进行操作非常有用。 8. **键总数**:`键总数`方法返回HashMap中键的数量,反映当前存储的键值对个数。 9. **是否为...

    如何遍历一个java集合

    遍历ArrayList通常有两种方式: 1. **迭代器(Iterator)**:Java提供了一种标准的遍历机制——Iterator接口。你可以通过调用`iterator()`方法获取迭代器,然后使用`hasNext()`和`next()`方法遍历集合的所有元素。...

    js 版 java hashmap

    6. **迭代器**:为了方便遍历HashMap中的所有键值对,实现提供了一个迭代器接口,可以按照插入顺序或键的自然顺序遍历。 7. **键的类型支持**:JavaScript的HashMap实现可能需要支持各种类型的键,包括字符串、数字...

    HashMap介绍和使用

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

    Java HashMap两种简便排序方法解析

    Java HashMap两种简便排序方法解析 Java HashMap是一种常用的数据结构,然而,它的储存是没有顺序的,按照key的HashCode实现。这使得在 certainsituations下的排序变得非常重要。下面,我们将介绍两种简便的排序...

    HASHMAP排序功能描述

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

    java HashMap原理分析

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

Global site tag (gtag.js) - Google Analytics