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