`

【转】Map遍历

    博客分类:
  • java
 
阅读更多

转自:http://wenku.baidu.com/view/72a96580b9d528ea81c779e2.html

java Map 遍历速度最优解

第一种:
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 Map 遍历方法

    ### Java Map遍历方法详解 在Java编程语言中,`Map`接口是集合框架中的一个核心组成部分,它存储键值对映射。本篇文章将详细介绍几种常用的遍历`Map`的方法,包括使用传统迭代器(Iterator)、增强型for循环(For-...

    map遍历的三种方法

    Map 遍历是集合操作中的一种重要操作,一般来说,有三种方式来遍历 Map 集合:使用 values() 方法遍历、使用 keySet() 方法遍历和使用 entrySet() 方法遍历。 第一种方法:使用 values() 方法遍历 这个方法是最...

    map遍历的四种方法

    ### Map遍历的四种方法 在Java编程语言中,`Map`是一种常用的数据结构,用于存储键值对。为了能够有效地处理和操作这些键值对数据,熟练掌握遍历`Map`的方法至关重要。本文将详细介绍四种不同的遍历`Map`的方式,并...

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

    ### Java中遍历Map的四种方式及性能比较 在Java编程中,`Map`是一种非常重要的数据结构,用于存储键值对。对于`Map`的遍历,不同的遍历方式有着不同的性能表现以及适用场景。本文将详细介绍四种常见的遍历`Map`的...

    map的遍历方法 有几种? 帮你选择最好的遍历方式

    你知道map的遍历方法有几种吗? 那这几种的区别是什么呢? 那种更简单、高效呢? 我的资源文件将告诉你。

    struts2中的map遍历

    在Struts2中,Map遍历是一个常见的功能,它允许开发者动态地展示或操作存储在Map中的数据。这个功能在处理表单提交、传递参数或者在视图层展示数据时尤为有用。 首先,让我们理解Map遍历的基本概念。Map是一种键值...

    C++11 unordered_map与map(插入,遍历,Find)效率对比。

    - `std::unordered_map`:遍历哈希表通常需要遍历所有桶,因此其时间复杂度也是O(n),但实际运行速度可能比`std::map`快,尤其是当元素数量很大时。 **查找操作**: - `std::map`:查找操作同样为O(log n),因为...

    Map遍历方法总结

    ### Map遍历方法总结 #### 一、引言 在Java编程中,`Map`是一种常用的集合类型,用于存储键值对数据。由于其高效的数据查找特性,在许多场景下都有广泛的应用。对于开发者来说,了解如何有效地遍历`Map`中的元素是...

    JAVA8独有的map遍历方式(非常好用)

    以下是关于Java 8独有的Map遍历方式的详细说明: 1. **通过`Map.keySet()`遍历** 在Java 8之前,遍历Map的传统方式是通过`Map.keySet()`获取所有的键,然后用for-each循环遍历这些键并获取对应的值。在Java 8中,...

    Freemarker 遍历Map数据

    数据模型: @RequestMapping(/freemarker) @Controller public class FreemarkerController { //测试1 @RequestMapping(/test1) public String test1(Model model){ //向数据模型放数据 model.addAttribute(name...

    Java Map 遍历实例与效率比较

    主要提供java中的map的遍历实例及效率比较

    java Map遍历方法

    这篇博文主要探讨了如何遍历Java中的`Map`对象,下面将详细介绍几种常见的遍历`Map`的方法。 1. **迭代器法**: Java提供了`Map`接口的`entrySet()`方法,返回一个包含`Map`中所有键值对的`Set`视图。通过这个`Set...

    MAP的遍历的讲解

    这是一人篇关于JAVA MAP遍历的讲解的文章,希望对你有用

    Java Map 遍历比较齐全的解析.docx

    总结,Java中遍历`Map`主要有四种方式,其中通过`Map.entrySet()`进行遍历通常被认为效率较高,尤其在`Map`容量较大的情况下。而在Java 8之后,我们可以利用Lambda表达式简化遍历操作。获取`Map`的长度直接调用`size...

    java集合MAP三种遍历

    本文将详细介绍Java中Map集合的三种遍历方法及其应用场景、优缺点等,帮助读者更好地理解和掌握Map的使用技巧。 ### 一、Map简介 `Map`接口是Java集合框架的一部分,它提供了基于键值对的数据存储方式。常见的实现...

    for循环中的map遍历没走的原因-原代码

    for循环中的map遍历没走的原因-原代码

    java-遍历map

    - 在遍历`Map`时,如果在遍历过程中尝试修改`Map`(例如添加或删除元素),可能会引发`ConcurrentModificationException`异常。因此,在遍历的同时不要修改`Map`。 - 使用流API遍历时,虽然代码更简洁,但性能上可能...

    另一种遍历Map的方式

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

    Map遍历方法

    ### Map遍历方法详解 #### 一、引言 在Java编程中,`Map`是一种常用的集合类型,用于存储键值对数据。由于其高效的数据查找特性,在许多场景下都有广泛的应用。对于开发者来说,掌握如何有效地遍历`Map`中的元素是...

Global site tag (gtag.js) - Google Analytics