
文章插圖
1、由來我們應(yīng)該在什么時刻選擇什么樣的遍歷方式呢,必須通過實踐的比較才能看到效率,也看了很多文章,大家建議使用entrySet,認(rèn)為entrySet對于大數(shù)據(jù)量的查找來說,速度更快,今天我們就通過下面采用不同方法遍歷key+value,key,value不同情景下的差異 。
2、準(zhǔn)備測試數(shù)據(jù):HashMap1:大小為1000000,key和value的值均為String,key的值為1、2、3………1000000;
Map<String,String> map =new HashMap<String,String>();String key,value;for(int i=1;i<=num;i++){key = ""+i;https://www.520longzhigu.com/diannao/https://www.520longzhigu.com/diannao/value="value"+i;map.put(key,value);}HashMap2:大小為1000000,key和value的值為String,key的值為50、100、150……..50000000;
Map<String,String> map = new HashMap<String,String>();String key,value;for(int i=1;i<=num;i++){key=""+(i*50);https://www.520longzhigu.com/diannao/https://www.520longzhigu.com/diannao/value="value"+key;map.put(key,value);}3、場景測試3.1遍歷key+value1)keySet利用Iterator遍歷
long startTime1 =System.currentTimeMillis();Iterator<String> iter = map.keySet().iterator();while (iter.hasNext()){key=iter.next();value=https://www.520longzhigu.com/diannao/map.get(key);}long endTime1 =System.currentTimeMillis();System.out.println("第一個程序運行時間:"+(endTime1-startTime1)+"ms");2)keySet利用for遍歷
long startTime2 =System.currentTimeMillis();for(String key2:map.keySet()){value=https://www.520longzhigu.com/diannao/map.get(key2);}long endTime2 =System.currentTimeMillis();System.out.println("第二個程序運行時間:"+(endTime2-startTime2)+"ms");3)entrySet利用Iterator遍歷
long startTime3=System.currentTimeMillis();Iterator<Map.Entry<String,String>> iter3 =map.entrySet().iterator();Map.Entry<String,String> entry3;while (iter3.hasNext()){entry3 = iter3.next();key = entry3.getKey();value=https://www.520longzhigu.com/diannao/entry3.getValue();}long endTime3 =System.currentTimeMillis();System.out.println("第三個程序運行時間:" +(endTime3-startTime3)+"ms");4)entrySet利用for遍歷
long startTime4=System.currentTimeMillis();for(Map.Entry<String,String> entry4:map.entrySet()){key=entry4.getKey();value=https://www.520longzhigu.com/diannao/entry4.getValue();}long endTime4 =System.currentTimeMillis();System.out.println("第四個程序運行時間:"+(endTime4-startTime4) +"ms");3.2遍歷key1)keySet利用Iterator遍歷
long startTime1 =System.currentTimeMillis();Iterator<String> iter = map.keySet().iterator();while (iter.hasNext()){key=iter.next();}long endTime1 =System.currentTimeMillis();System.out.println("第一個程序運行時間:"+(endTime1-startTime1)+"ms");2)keySet利用for遍歷
long startTime2 =System.currentTimeMillis();for(String key2:map.keySet()){}long endTime2 =System.currentTimeMillis();System.out.println("第二個程序運行時間:"+(endTime2-startTime2)+"ms");3)entrySet利用Iterator遍歷
long startTime3=System.currentTimeMillis();Iterator<Map.Entry<String,String>> iter3 =map.entrySet().iterator();Map.Entry<String,String> entry3;while (iter3.hasNext()){key = iter3.next().getKey();}long endTime3 =System.currentTimeMillis();System.out.println("第三個程序運行時間:" +(endTime3-startTime3)+"ms");4)entrySet利用for遍歷
long startTime4=System.currentTimeMillis();for(Map.Entry<String,String> entry4:map.entrySet()){key=entry4.getKey();}long endTime4 =System.currentTimeMillis();System.out.println("第四個程序運行時間:"+(endTime4-startTime4) +"ms");3.3遍歷value1)keySet利用Iterator遍歷
long startTime1 =System.currentTimeMillis();Iterator<String> iter = map.keySet().iterator();while (iter.hasNext()){value=https://www.520longzhigu.com/diannao/map.get(iter.next());}long endTime1 =System.currentTimeMillis();System.out.println("第一個程序運行時間:"+(endTime1-startTime1)+"ms");2)keySet利用for遍歷
以上關(guān)于本文的內(nèi)容,僅作參考!溫馨提示:如遇健康、疾病相關(guān)的問題,請您及時就醫(yī)或請專業(yè)人士給予相關(guān)指導(dǎo)!
「愛刨根生活網(wǎng)」www.malaban59.cn小編還為您精選了以下內(nèi)容,希望對您有所幫助:- 講解jquery循環(huán)遍歷數(shù)組 jquery遍歷元素的方法
- imap.qq的用戶名密碼不正確 qq的imap服務(wù)器密碼怎么填寫
- Python列表常用操作小技巧 python中map函數(shù)的用法
- 前端解決跨域的三種方法 jquery的each遍歷方法是干什么的
- ??贾t敬成語大集合 謙虛的成語
- 愚人節(jié)整蠱大集合 2021愚人節(jié)怎么整蠱人
- 股票開盤集合競價規(guī)則 競價交易是什么意思
- 歷史上那些描寫二月二龍?zhí)ь^詩句集合
- 藍(lán)寶石的顏色 藍(lán)寶石≠藍(lán)色寶石,不同顏色藍(lán)寶石集合
- 腹肌鍛煉:腹肌撕裂者動作大集合
