table of contents
hashmap遍歷方式比較
一、hashmap的遍歷獲取到value的幾種方式
二、**
三、結果
四、思考
1、先通過獲取到keyset,遍歷keyset中的key,通過key去獲取到value;
2、獲取到map.values(),遍歷獲取到value值;
3、獲取到entryset(),通過遍歷entry,通過entry可獲取到value(或者key)。
public class mainactivity extends activity
}public void test(view view)
private static void firstmethod(mapmap)
log.v("testmap","第一種1耗時:"+(system.currenttimemillis() - starttime));
long starttime2 = system.currenttimemillis();
iterator iterator2 = map.keyset().iterator();
while (iterator2.hasnext())
log.v("testmap","第一種2耗時:"+(system.currenttimemillis() - starttime2));
}private static void secondmethod1(mapmap)
log.v("testmap","第二種1耗時:"+(system.currenttimemillis() - starttime));
}private static void secondmethod2(mapmap)
log.v("testmap","第二種2耗時:"+(system.currenttimemillis() - starttime));
}private static void thirdmethod1(mapmap)
log.v("testmap","第三種1耗時:"+(system.currenttimemillis() - starttime));
}private static void thirdmethod2(mapmap)
log.v("testmap","第三種2耗時:"+(system.currenttimemillis() - starttime));
}
列印結果
07-23 12:36:52.334 3680-3680/com.rrjc.testhashmap v/testmap: 第一種1耗時:538
07-23 12:36:52.662 3680-3680/com.rrjc.testhashmap v/testmap: 第一種2耗時:328
07-23 12:36:53.012 3680-3680/com.rrjc.testhashmap v/testmap: 第二種1耗時:350
07-23 12:36:53.362 3680-3680/com.rrjc.testhashmap v/testmap: 第二種2耗時:350
07-23 12:36:53.745 3680-3680/com.rrjc.testhashmap v/testmap: 第三種1耗時:383
07-23 12:36:54.129 3680-3680/com.rrjc.testhashmap v/testmap: 第三種2耗時:384
1、從第一種方式可看出,map去獲取key的時候耗時就特別長,如果再去通過該key去獲取value則需花費更長的時間;
其他的第二種和第三種方式耗時差不多。
2、不少人經常爭論是通過迭代器模式還是通過foreach的方式,哪種更快?而實驗已經給出了結論,這兩種都差不多。
3、但同時即使資料量已經如此大了,其實他們的迭代效率並非有顯著的差異。
HashMap的2中遍歷方式比較
url 首先我們準備資料,準備乙個map mapmap new hashmap for int i 0 i 10 i 然後我們採用傳說中的key遍歷 步驟 先弄成key set,然後遍歷key set 通過key從map中獲取value iteratoriterator map.keyset ite...
HashMap的2中遍歷方式比較
首先我們準備資料,準備乙個map mapmap new hashmap for int i 0 i 10 i 然後我們採用傳說中的key遍歷 步驟 先弄成key set,然後遍歷key set 通過key從map中獲取value iteratoriterator map.keyset iterato...
HashMap遍歷方式
hashmaphashmap new hashmap hashmap.put a a hashmap.put b b hashmap.put c c hashmap.put d d 第一種 普遍使用,二次取值 system.out.println 通過map.keyset遍歷key和value fo...