1. JavaHashMap遍历的两种方式
    原文地址: http://www.javaweb.cc/language/java/032291.shtml

    第一种:
  1. Map map = new HashMap();
  2. Iterator iter = map.entrySet().iterator();
  3. while (iter.hasNext())
  4. {
  5. Map.Entry entry = (Map.Entry) iter.next();
  6. Object key = entry.getKey();
  7. Object val = entry.getValue();
  8. }
  1. 效率高,以后一定要使用此种方式!
  1.  
  1. 第二种:
  1. Map map = new HashMap();
  2. Iterator iter = map.keySet().iterator();
  3. while (iter.hasNext())
  4. {
  5. Object key = iter.next();
  6. Object val = map.get(key);
  7. }
  1. 效率低,以后尽量少使用!
  1. HashMap的遍历有两种常用的方法,那就是使用keysetentryset来进行遍历,但两者的遍历速度是有差别的,下面请看实例:
  1. public class HashMapTest
  2. {
  3.    public static void main(String[] args)
  4. {
  5.    HashMap hashmap = new HashMap();
  6.    for (int i = 0; i < 1000; i )
  7. {
  8.    hashmap.put("" i, "thanks");
  9.    }
  10.    long bs = Calendar.getInstance().getTimeInMillis();
  11.    Iterator iterator = hashmap.keySet().iterator();
  12.   
  13. while (iterator.hasNext())
  14. {
  15.    System.out.print(hashmap.get(iterator.next()));
  16.    }
  17.    System.out.println();
  18.    System.out.println(Calendar.getInstance().getTimeInMillis() - bs);
  19.    listHashMap();
  20.    }
  21.   
  22. public static void listHashMap()
  23. {
  24.    java.util.HashMap hashmap = new java.util.HashMap();
  25.    for (int i = 0; i < 1000; i )
  26. {
  27.    hashmap.put("" i, "thanks");
  28.    }
  29.    long bs = Calendar.getInstance().getTimeInMillis();
  30.    java.util.Iterator it = hashmap.entrySet().iterator();
  31.    while (it.hasNext())
  32. {
  33.    java.util.Map.Entry entry = (java.util.Map.Entry) it.next();
  34.    // entry.getKey() 返回与此项对应的键
  35.    // entry.getValue() 返回与此项对应的值
  36.    System.out.print(entry.getValue());
  37.    }
  38.    System.out.println();
  39.    System.out.println(Calendar.getInstance().getTimeInMillis() - bs);
  40.    }
  41. }
  1.  
  1. 对于keySet其实是遍历了2次,一次是转为iterator,一次就从hashmap中取出key所对于的value。而entryset只是遍历了第一次,他把keyvalue都放到了entry中,所以就快了。

    JavaHashMap遍历的两种方式(本教程仅供研究和学习,不代表JAVA中文网观点)
    本篇文章链接地址:http://www.javaweb.cc/language/java/032291.shtml
    如需转载请注明出自JAVA中文网:http://www.javaweb.cc/

    还是第一种好,简单。。。

[Java] HashMap遍历的两种方式的更多相关文章

  1. Java中HashMap遍历的两种方式

    Java中HashMap遍历的两种方式 转]Java中HashMap遍历的两种方式原文地址: http://www.javaweb.cc/language/java/032291.shtml 第一种: ...

  2. HashMap遍历的两种方式

    第一种: Map map = new HashMap(); Iterator iter = map.entrySet().iterator(); while (iter.hasNext()) {    ...

  3. HashMap 遍历的两种方式及性能比较

    HashMap 是Java开发中经常使用的数据结构.相信HashMap 的基本用法你已经很熟悉了.那么我们该如何遍历HashMap 呢?哪种遍历方式的性能更好呢?本篇文章来为你解决这个疑惑. 一.Ha ...

  4. HashMap遍历的两种方式,推荐使用entrySet()

    第一种: Map map = new HashMap(); Iterator iter = map.entrySet().iterator(); while (iter.hasNext()) {    ...

  5. 对Java代码加密的两种方式,防止反编译

    使用Virbox Protector对Java项目加密有两种方式,一种是对War包加密,一种是对Jar包加密.Virbox Protector支持这两种文件格式加密,可以加密用于解析class文件的j ...

  6. Java新建线程的两种方式

    Java新建线程有两种方式,一种是通过继承Thread类,一种是实现Runnable接口,下面是新建线程的两种方式. 我们假设有个竞赛,有一个选手A做俯卧撑,一个选手B做仰卧起坐.分别为两个线程: p ...

  7. python中字典的循环遍历的两种方式

    开发中经常会用到对于字典.列表等数据的循环遍历,但是python中对于字典的遍历对于很多初学者来讲非常陌生,今天就来讲一下python中字典的循环遍历的两种方式. 注意: python2和python ...

  8. C++ 数组遍历的两种方式

    C++ 数组遍历的两种方式: #include <iostream> using namespace std; int main() { // 一维数组 ] = {, , , , }; / ...

  9. java集合遍历的几种方式总结及比较

    集合类的通用遍历方式, 用迭代器迭代: Iterator it = list.iterator(); while(it.hasNext()) { Object obj = it.next(); }   ...

随机推荐

  1. Leveldb Advanced

    [Slice] The return value of the it->key() and it->value() is a simple structure that contains ...

  2. C++11用于计算函数对象返回类型的统一方法

    [C++11用于计算函数对象返回类型的统一方法] 模板 std::result_of 被TR1 引进且被 C++11 所采纳,可允许我们决定和使用一个仿函数其回返值的类别.底下,CalculusVer ...

  3. Js中获取frames中的元素

    var oCombo =  window.parent.frames["frmresourcetype"].document.getElementById('cmbType') ; ...

  4. 文件拷贝以及base64

    File inFile = new File("d:" + File.separator + "test.jpg"); File outFile = new F ...

  5. Redis初步

    Redis目录下文件: redis-server.exe:服务程序 redis-check-dump.exe:本地数据库检查 redis-check-aof.exe:更新日志检查 redis-benc ...

  6. mysql max_allowed_packet错误

    mysql错误 max_allowed_packet 查看目前配置 show VARIABLES like '%max_allowed_packet%'; 修改: set global max_all ...

  7. JQuery 的bind和unbind函数

    测试:页面代码:<body>     <input type="button" name="aaa" value="点击我" ...

  8. Backbone

    app.js作为backbone 业务代码主模块,内容很简单,在页面加载完之后,对AppView进行了实例化

  9. How a non-windowed component can receive messages from Windows -- AllocateHWnd

    http://www.delphidabbler.com/articles?article=1 Why do it? Sometimes we need a non-windowed componen ...

  10. 广州项目实施步骤II_练习配置HaProxy的重定向负载均衡

    CentOS6.4 配置Haproxy   Haproxy下载地址:http://pan.baidu.com/share/link?shareid=1787182295&uk=18290183 ...