Map遍歷效率比較

2021-08-19 19:42:41 字數 1146 閱讀 8070

1、由來     

上次部落格提到了map的四種遍歷方法,其中有的只是獲取了key值或者是value值,但我們應該在什麼時刻選擇什麼樣的遍歷方式呢,必須通過實踐的比較才能看到效率。

也看了很多文章,大家建議使用entryset,認為entryset對於大資料量的查詢來說,速度更快,今天我們就通過下面採用不同方法遍歷key+value,key,value不同情景下的差異。

2、準備測試資料:

hashmap1:大小為1000000,key和value的值均為string,key的值為1、2、3.........1000000;

hashmap2:大小為1000000,key和value的值為string,key的值為50、100、150........50000000; 

3.測試

自行測試..................

4、時間對比

4.1遍歷key+value

遍歷內容:key+value

hashmap1

hashmap2

keyset用iterator遍歷

keyset用for遍歷

entryset用iterator遍歷

entryset用for遍歷

4.2遍歷key

遍歷內容:key

hashmap1

hashmap2

keyset用iterator遍歷

keyset用for遍歷

entryset用iterator遍歷

entryset用for遍歷

4.3遍歷value

遍歷內容:value

hashmap1

hashmap2

keyset用iterator遍歷

keyset用for遍歷

entryset用iterator遍歷

entryset用for遍歷

values用iterator遍歷

values用for遍歷

5、總結

從上面的時間比較來看:

1)map的key採用簡單形式和複雜形式時,查詢的效率是不同的,簡單的key值效率更高

2)當資料量大的時候,採用entryset遍歷key+value的效率要高於keyset

3)當我們只需要取得value值時,採用values來遍歷效率更高

Map遍歷效率比較

原博 1 由來 上次部落格提到了map的四種遍歷方法,其中有的只是獲取了key值或者是value值,但我們應該在什麼時刻選擇什麼樣的遍歷方式呢,必須通過實踐的比較才能看到效率。也看了很多文章,大家建議使用entryset,認為entryset對於大資料量的查詢來說,速度更快,今天我們就通過下面採用不...

3種場景不同方法遍歷Map集合的效率比較

只遍歷 key 只遍歷 value 測試結果 小結 hashmap1 大小為1000000,key和value的值均為string,key的值為1 2 3.1000000 mapmap1 newhashmap string key1,value1 for int i 1 i 1000000 i ha...

Map集合的遍歷及比較

在平時開發中,經常會遍歷集合。三大集合list,set,map既可以使用iterator迭代器遍歷也可以使用高階for迴圈 for each 遍歷。下來我們主要來看看map集合的遍歷。map集合的遍歷方式 public static void main string args system.out....