溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

java中Map遍歷的方式有哪些

發(fā)布時(shí)間:2023-03-27 14:20:32 來(lái)源:億速云 閱讀:173 作者:iii 欄目:開(kāi)發(fā)技術(shù)

這篇“java中Map遍歷的方式有哪些”文章的知識(shí)點(diǎn)大部分人都不太理解,所以小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細(xì),步驟清晰,具有一定的借鑒價(jià)值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來(lái)看看這篇“java中Map遍歷的方式有哪些”文章吧。

本文以如下map案例:

Map<String, String> map = new HashMap<>();
map.put("student1", "張三");
map.put("student2", "李四");
map.put("student3", "王五");

1、map.entrySet()方式

entrySet()方法: 獲取map中所有的鍵值對(duì),結(jié)果為Set集合

在jdk版本小于1.8時(shí),該種方式經(jīng)常使用,效率高

//獲取map中的所有鍵值對(duì),結(jié)果為Set類(lèi)型的集合
Set<Map.Entry<String, String>> entries = map.entrySet();
/** 遍歷Set集合、開(kāi)發(fā)中常見(jiàn)的遍歷方式 */
//1、增強(qiáng)for形式遍歷結(jié)果
for (Map.Entry<String, String> entry : entries) {
     System.out.println(entry);
}
//2、Lamdba表達(dá)式遍歷結(jié)果
entries.forEach(entry-> System.out.println(entry));

2、map.keySet()方式

keySet()方法:獲取map中的所有鍵(key),結(jié)果為Set集合

該種方式比 entrySet()方式較慢,且比方式4慢,實(shí)際開(kāi)發(fā)中也可使用

//獲取map中的所有鍵,結(jié)果為Set類(lèi)型的集合
Set<String> keys = map.keySet();
//根據(jù)key獲取map中的元素
for (String key : keys) {
    System.out.println(map.get(key));
}

3、map.values()方式

values():直接獲取map所有的值(value),組裝為一個(gè)Collection集合

該種方式效率最低,使用到最上層的Collection接口,開(kāi)發(fā)中應(yīng)當(dāng)避免使用

//直接獲取map所有的值(value),組裝為一個(gè)Collection集合【Collection集合是Set、List的父接口】
Collection<String> values = map.values();
//遍歷Collection集合
for (String value : values) {
    System.out.println(value);
}

4、forEach方式

需JDK8及以上,直接支持遍歷map

該種方式是方式1(entrySet)的進(jìn)一步封裝,優(yōu)化了代碼的簡(jiǎn)潔性,性能與entrySet略慢(因?yàn)檫M(jìn)一步封裝了下),開(kāi)發(fā)中經(jīng)常使用

語(yǔ)法:

//當(dāng)業(yè)務(wù)代碼只有一句時(shí),"{}"符號(hào)與";"符號(hào)可以省略

map.forEach((鍵變量名稱(chēng),值遍歷名稱(chēng))->{

        //業(yè)務(wù)代碼

});

map.forEach((key,value)-> System.out.println(value));

以上就是關(guān)于“java中Map遍歷的方式有哪些”這篇文章的內(nèi)容,相信大家都有了一定的了解,希望小編分享的內(nèi)容對(duì)大家有幫助,若想了解更多相關(guān)的知識(shí)內(nèi)容,請(qǐng)關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI