HashMap遍歷方式比較

2021-08-21 19:28:35 字數 1926 閱讀 6459

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...