`

HashMap遍历

    博客分类:
  • java
 
阅读更多

java Map遍历速度最优解

第一种(效率高):

Map map = new HashMap();

Iterator iter = mat.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 = mat.entrySet().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,而entry只遍历了一次,把key和value都放到了entry中,所以就快了

分享到:
评论

相关推荐

    基于HashMap遍历和使用方法(详解)

    HashMap遍历和使用方法详解 HashMap是Java中一种常用的数据结构,用于存储键值对的集合。它实现了Map接口,是基于哈希表结构的,可以快速地存储和检索数据。本文将详细介绍HashMap的遍历和使用方法,并比较HashMap...

    Java 实例 - HashMap遍历源代码-详细教程.zip

    5. **HashMap遍历注意事项**: - 遍历HashMap时修改HashMap(添加、删除元素)可能会导致`ConcurrentModificationException`,因为迭代器无法检测到这种并发修改。 - 使用`keySet()`遍历并删除元素是安全的,但...

    1.HashSet和HashMap遍历.md

    自己写的例子,关于HashSet遍历和HashMap遍历的. 感谢大家参考

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

    Java HashMap 遍历和删除元素方法小结 Java HashMap 是一种常用的数据结构,用于存储键值对儿,但是在遍历和删除元素时,需要注意一些特殊的情况,否则可能会出现异常或错误。本文将介绍 Java HashMap 遍历和删除...

    FLEX HashMap遍历并取到需要的值

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

    HashMap和List遍历方法及如何遍历删除元素总结

    要解决HashMap遍历删除元素的问题,可以使用Iterator来遍历HashMap,并使用Iterator的remove方法来删除元素。这样可以避免ConcurrentModificationException异常。 小结 在遍历和删除HashMap和List的元素时,需要...

    Java5种遍历HashMap数据的写法

    Java5种遍历HashMap数据的写法 Java语言中,HashMap是一种常用的数据结构,用于存储键值对形式的数据。然而,在实际开发中,我们经常需要遍历HashMap中的数据以实现某些功能。下面将介绍五种遍历HashMap数据的写法...

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

    遍历HashMap是常见的操作,本文将介绍六种不同的方法来实现这一功能。 1. **方式一:使用KeySet方法** KeySet方法返回HashMap中所有键的Set视图。由于Set接口实现了Iterable接口,我们可以使用for-each循环来遍历...

    java遍历HashMap简单的方法

    HashMap遍历的常用方法主要有三种:迭代器(Iterator)遍历、键集(KeySet)遍历以及 Entry 集(entrySet)遍历。下面将逐一介绍这些方法。 1. 迭代器遍历: HashMap提供了迭代器接口(Iterator),可以通过调用`...

    Java HashMap的三种遍历方法及优缺点含示例

    返回的是一个包含HashMap中所有值的集合,遍历此集合可以获取所有值。优点:如果关注的是值而非键,可以直接遍历值集。缺点:无法直接获取键,如果需要键,则需要额外的查找操作。 HashMap的遍历方式各有特点,选择...

    Hashmap实现了Map接口的底层实现.docx

    遍历HashMap有多种方式。第一种是通过entrySet()迭代器,可以同时获取键值对;第二种是通过keySet()迭代器,需要再次通过get()获取值;第三种是使用Java 8引入的forEach()方法,通过Lambda表达式简洁地遍历。其中,...

    hashMap和hashTable的区别

    ### hashMap和hashTable的区别 #### 一、简介与基本概念 `HashMap` 和 `HashTable` 都是 Java 集合框架中非常重要的数据结构,它们都实现了 `Map` 接口,用于存储键值对。尽管它们在功能上有很多相似之处,但在...

    阿里面试题总结

    - HashMap遍历方式及其应用场景 - ArrayList与LinkedList的区别及适用场景 - Java访问修饰符的使用 - final关键字的含义及其应用场景 - Ajax的工作原理及其核心对象 - Spring框架中的事务管理配置方法 - ...

    Java 集合框架+集合实例

    - **HashMap遍历**:通过迭代器遍历HashMap中的键值对。 - **集合长度**:获取集合中元素的数量。 - **集合遍历**:使用迭代器或for-each循环遍历集合中的元素。 - **集合输出**:将集合内容打印到控制台。 - *...

    Java手写简易版HashMap的使用(存储+查找)

    HashMap遍历Node数组,直到找到对应的键值对。如果找到,则更新对应的值,否则将键值对存储到Node数组中。 3. 存储键值对 HashMap将键值对存储到Node数组中。每个Node对象都包含三个字段:hash、key和value。hash...

    java哈希遍历_哈希遍历_

    在Java编程中,哈希遍历(Hash Traversal)通常是指对哈希表或映射数据结构(如HashMap)中的键值对进行访问的过程。哈希表是一种高效的数据存储方式,它通过计算对象的哈希码来快速定位数据,使得查找、插入和删除...

    JAVA面试题_华为答案.doc

    - HashMap遍历顺序与插入顺序可能不同,而Hashtable的顺序是固定的。 6. **抽象类与接口**: - **抽象类**:可以包含抽象方法和非抽象方法,可以有实例变量,可以被继承。 - **接口**:只能包含抽象方法和常量,...

    怎样遍历一个HashMap?

    可以通过2种方法遍历HashMap &lt;br&gt;Map map = new HashMap(); &lt;br&gt;for (Iterator iter = map.entrySet().iterator(); iter.hasNext();) { &lt;br&gt; Map.Entry entry = (Map.Entry) iter.next(); &lt;br&gt; Object ...

    一线互联网企业面试题.pdf

    24. HashMap遍历的三种方式。 25. JVM命令的使用。 26. ConcurrentHashmap的锁机制及其性能考量。 27. MySQL存储引擎MyISAM和InnoDB的区别。 28. Memcache与Redis的对比。 29. MySQL的行级锁和性能优化方法。 30. ...

Global site tag (gtag.js) - Google Analytics