tinguo002

           

          轉(zhuǎn)]Java中HashMap遍歷的兩種方式

          轉(zhuǎn)]Java中HashMap遍歷的兩種方式
          原文地址: http://www.javaweb.cc/language/java/032291.shtml

          第一種:
            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來進(jìn)行遍歷,但兩者的遍歷速度是有差別的,下面請(qǐng)看實(shí)例:
            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() 返回與此項(xiàng)對(duì)應(yīng)的鍵
            // entry.getValue() 返回與此項(xiàng)對(duì)應(yīng)的值
            System.out.print(entry.getValue());
            }
            System.out.println();
            System.out.println(Calendar.getInstance().getTimeInMillis() - bs);
            }
            }
            對(duì)于keySet其實(shí)是遍歷了2次,一次是轉(zhuǎn)為iterator,一次就從hashmap中取出key所對(duì)于的value。而entryset只是遍歷了第一次,他把key和value都放到了entry中,所以就快了。


          Java中HashMap遍歷的兩種方式(本教程僅供研究和學(xué)習(xí),不代表JAVA中文網(wǎng)觀點(diǎn))
          本篇文章鏈接地址:http://www.javaweb.cc/language/java/032291.shtml
          如需轉(zhuǎn)載請(qǐng)注明出自JAVA中文網(wǎng):http://www.javaweb.cc/


          還是第一種好,簡(jiǎn)單。。。



          歡迎大家訪問我的個(gè)人網(wǎng)站 萌萌的IT人

          posted on 2013-06-17 21:59 一堣而安 閱讀(216) 評(píng)論(0)  編輯  收藏 所屬分類: java

          導(dǎo)航

          統(tǒng)計(jì)

          常用鏈接

          留言簿(1)

          隨筆分類

          隨筆檔案

          收藏夾

          搜索

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 安达市| 济宁市| 嘉荫县| 阜宁县| 类乌齐县| 文安县| 白城市| 正阳县| 凤冈县| 尉犁县| 苍山县| 波密县| 刚察县| 新宾| 石柱| 白玉县| 株洲市| 沙洋县| 海阳市| 顺昌县| 大石桥市| 海伦市| 乌鲁木齐市| 饶平县| 平顶山市| 育儿| 新野县| 唐海县| 乳山市| 历史| 长岛县| 洪雅县| 朝阳区| 新余市| 恩平市| 镇坪县| 汉中市| 潞城市| 当阳市| 桓台县| 永定县|