隨筆 - 100  文章 - 50  trackbacks - 0
          <2025年5月>
          27282930123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

          常用鏈接

          留言簿(3)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          收藏夾

          我收藏的一些文章!

          搜索

          •  

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          第一種:
          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來(lái)進(jìn)行遍歷,但兩者的遍歷速度是有差別的,下面請(qǐng)看實(shí)例:

          public class HashMapTest {
          public static void main(String[] args) ...{
            HashMap hashmap = new HashMap();
            for (int i = 0; i < 100000; i ) ...{
             hashmap.put("" i, "test");
            }

            long bg = System.currentTimeMillis();
            Iterator iterator = hashmap.keySet().iterator();  
            while (iterator.hasNext()) {   
             System.out.print(hashmap.get(iterator.next()));
            }
            System.out.println();
            System.out.println(System.currentTimeMillis()- bg);
            listHashMap();
          }

            public static void listHashMap() ...{
            java.util.HashMap hashmap = new java.util.HashMap();
            for (int i = 0; i < 100000; i ) ...{
             hashmap.put("" i, "test");
            }
            long bg = System.currentTimeMillis();
            java.util.Iterator it = hashmap.entrySet().iterator();
            while (it.hasNext()) ...{
             java.util.Map.Entry entry = (java.util.Map.Entry) it.next();
             // entry.getKey() 返回與此項(xiàng)對(duì)應(yīng)的鍵
             // entry.getValue() 返回與此項(xiàng)對(duì)應(yīng)的值
             System.out.print(entry.getValue());
            }
            System.out.println();
            System.out.println(System.currentTimeMillis() - bg);
          }
          }

          對(duì)于keySet其實(shí)是遍歷了2次,一次是轉(zhuǎn)為iterator,一次就從hashmap中取出key所對(duì)于的value。而entryset只是遍歷了第一次,他把key和value都放到了entry中,所以就快了。
          posted on 2010-09-06 23:33 fly 閱讀(211) 評(píng)論(0)  編輯  收藏 所屬分類: java學(xué)習(xí)
          主站蜘蛛池模板: 达孜县| 塘沽区| 老河口市| 连山| 徐闻县| 手机| 五常市| 乡宁县| 河曲县| 吉林省| 靖州| 修文县| 泰兴市| 陇南市| 新宁县| 沂水县| 政和县| 彭水| 南城县| 石泉县| 北京市| 桃江县| 榆林市| 辽宁省| 新密市| 巧家县| 南投县| 和平区| 高平市| 沂源县| 台前县| 永定县| 烟台市| 无锡市| 土默特右旗| 富顺县| 分宜县| 宁海县| 通渭县| 防城港市| 平顶山市|