更新時間:2020-08-18 16:33:07 來源:動力節(jié)點(diǎn) 瀏覽2212次
JDK8之前,可以使用keySet或者entrySet來遍歷HashMap,JDK8中引入了map.foreach來進(jìn)行遍歷。
原因:
keySet其實(shí)是遍歷了2次,一次是轉(zhuǎn)為Iterator對象,另一次是從hashMap中取出key所對應(yīng)的value。而entrySet只是遍歷了一次就把key和value都放到了entry中,效率更高。如果是JDK8,使用Map.foreach方法。
1. keySet和entrySet
(1)基本用法
keySet:
entrySet:
其實(shí)這里已經(jīng)很明顯了,當(dāng)要得到某個value時,keySet還需要從HashMap中g(shù)et,entrySet相比keySet少了遍歷table的過程,這也是兩者性能上的主要差別。
2. Map.foreach
在JDK8以后,引入了Map.foreach。
Map.foreach本質(zhì)仍然是entrySet
配合lambda表達(dá)式一起使用,操作起來更加方便。
(1)使用Java8的foreach+lambda表達(dá)式遍歷Map
以上就是動力節(jié)點(diǎn)java培訓(xùn)機(jī)構(gòu)的小編針對“JavaHashMap遍歷方式性能探討”的內(nèi)容進(jìn)行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業(yè)老師隨時為你服務(wù)。
相關(guān)閱讀
初級 202925
初級 203221
初級 202629
初級 203743