更新時(shí)間:2020-08-18 16:33:07 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽2277次
JDK8之前,可以使用keySet或者entrySet來(lái)遍歷HashMap,JDK8中引入了map.foreach來(lái)進(jìn)行遍歷。
原因:
keySet其實(shí)是遍歷了2次,一次是轉(zhuǎn)為Iterator對(duì)象,另一次是從hashMap中取出key所對(duì)應(yīng)的value。而entrySet只是遍歷了一次就把key和value都放到了entry中,效率更高。如果是JDK8,使用Map.foreach方法。
1. keySet和entrySet
(1)基本用法
keySet:
entrySet:
其實(shí)這里已經(jīng)很明顯了,當(dāng)要得到某個(gè)value時(shí),keySet還需要從HashMap中g(shù)et,entrySet相比keySet少了遍歷table的過(guò)程,這也是兩者性能上的主要差別。
2. Map.foreach
在JDK8以后,引入了Map.foreach。
Map.foreach本質(zhì)仍然是entrySet
配合lambda表達(dá)式一起使用,操作起來(lái)更加方便。
(1)使用Java8的foreach+lambda表達(dá)式遍歷Map
以上就是動(dòng)力節(jié)點(diǎn)java培訓(xùn)機(jī)構(gòu)的小編針對(duì)“JavaHashMap遍歷方式性能探討”的內(nèi)容進(jìn)行的回答,希望對(duì)大家有所幫助,如有疑問(wèn),請(qǐng)?jiān)诰€咨詢,有專(zhuān)業(yè)老師隨時(shí)為你服務(wù)。
相關(guān)閱讀
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
有基礎(chǔ) 直達(dá)就業(yè)
業(yè)余時(shí)間 高薪轉(zhuǎn)行
工作1~3年,加薪神器
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問(wèn)老師會(huì)電話與您溝通安排學(xué)習(xí)