最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java中Map的五種遍歷方式實(shí)現(xiàn)與對比

 更新時(shí)間:2025年12月13日 11:33:28   作者:AAA簡單玩轉(zhuǎn)程序設(shè)計(jì)  
其實(shí)Map遍歷藏著多種玩法,有的優(yōu)雅簡潔,有的性能拉滿,今天咱們盤一盤這些進(jìn)階偏基礎(chǔ)的遍歷方式,告別重復(fù)又臃腫的代碼,感興趣的小伙伴可以了解下

提起Java中Map的遍歷,很多人第一反應(yīng)還是: for (Map.Entry<K,V> entry : map.entrySet()) 。但其實(shí)Map遍歷藏著多種玩法,有的優(yōu)雅簡潔,有的性能拉滿,今天咱們盤一盤這些進(jìn)階偏基礎(chǔ)的遍歷方式,告別重復(fù)又臃腫的代碼~

一、先搞懂:Map遍歷的核心目標(biāo)

遍歷Map本質(zhì)是獲取「鍵(Key)」、「值(Value)」或「鍵值對(Entry)」,不同場景對應(yīng)不同遍歷方式,先上基礎(chǔ)準(zhǔn)備代碼:

import java.util.HashMap;
import java.util.Map;

public class MapTraversalDemo {
    public static void main(String[] args) {
        Map<String, Integer> fruitPrice = new HashMap<>();
        fruitPrice.put("蘋果", 10);
        fruitPrice.put("香蕉", 5);
        fruitPrice.put("橙子", 8);
        
        // 各種遍歷方式寫在這里~
    }
}

二、幾種遍歷方式的對比

1. 傳統(tǒng)EntrySet遍歷(最通用)

這是最基礎(chǔ)也最常用的方式,支持同時(shí)獲取鍵和值,兼容所有Java版本:

// 方式1:普通for循環(huán)+EntrySet
for (Map.Entry<String, Integer> entry : fruitPrice.entrySet()) {
    String key = entry.getKey();
    Integer value = entry.getValue();
    System.out.println(key + ":" + value + "元");
}
 

2. Lambda表達(dá)式遍歷(Java 8+,極簡)

Java 8引入的forEach+Lambda,一行代碼搞定,告別冗余:

// 方式2:Lambda+forEach
fruitPrice.forEach((key, value) -> System.out.println(key + ":" + value + "元"));

3. 只遍歷Key/Value(按需選擇)

如果只需要鍵或值,不用遍歷EntrySet,直接針對性獲?。?/p>

// 只遍歷Key
for (String key : fruitPrice.keySet()) {
    System.out.println("水果:" + key);
}

// 只遍歷Value
for (Integer value : fruitPrice.values()) {
    System.out.println("價(jià)格:" + value + "元");
}

4. 迭代器遍歷(支持刪除元素)

如果遍歷過程中需要?jiǎng)h除元素,迭代器是安全選擇(foreach遍歷刪除會拋異常):

// 方式4:迭代器遍歷(支持刪除)
Iterator<Map.Entry<String, Integer>> iterator = fruitPrice.entrySet().iterator();
while (iterator.hasNext()) {
    Map.Entry<String, Integer> entry = iterator.next();
    if (entry.getValue() < 8) {
        iterator.remove(); // 安全刪除價(jià)格低于8的水果
    }
}
System.out.println("刪除后的Map:" + fruitPrice);

三、避坑提醒

1. 遍歷過程中修改Map(如put/remove):除了迭代器的remove方法,其他方式可能觸發(fā) ConcurrentModificationException ;

2. 性能優(yōu)先級:EntrySet遍歷 > 分別遍歷Key+getValue(后者會重復(fù)查詢Map);

3. Lambda遍歷雖然簡潔,但無法在內(nèi)部使用break/continue終止遍歷。

到此這篇關(guān)于Java中Map的五種遍歷方式實(shí)現(xiàn)與對比的文章就介紹到這了,更多相關(guān)Java Map遍歷內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 理解Java垃圾回收

    理解Java垃圾回收

    這篇文章主要幫助大家理解Java垃圾回收,通過實(shí)例學(xué)習(xí)java垃圾回收,什么是垃圾回收,感興趣的小伙伴們可以參考一下
    2016-03-03
  • IDEA中右側(cè)沒有顯示Maven問題及解決

    IDEA中右側(cè)沒有顯示Maven問題及解決

    解決IDEA中Maven工具窗口不顯示的問題,包括手動重新加載Maven項(xiàng)目、啟用Maven插件、手動加載Maven項(xiàng)目、重置IDEA配置和檢查IDEA版本和Maven配置
    2026-02-02
  • 淺談MyBatis所有的jdbcType類型

    淺談MyBatis所有的jdbcType類型

    在Mybatis中JdbcType類型是一個(gè)枚舉類型,它包含了所有的JDBC數(shù)據(jù)類型,如VARCHAR、INTEGER、DATE等,本文主要介紹了淺談MyBatis所有的jdbcType類型,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-06-06
  • Java中l(wèi)ombok的@Builder注解的解析與簡單使用詳解

    Java中l(wèi)ombok的@Builder注解的解析與簡單使用詳解

    這篇文章主要介紹了Java中l(wèi)ombok的@Builder注解的解析與簡單使用,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-01-01
  • Java中實(shí)現(xiàn)Comparable和Comparator對象比較

    Java中實(shí)現(xiàn)Comparable和Comparator對象比較

    這篇文章主要針對Java中Comparable和Comparator對象進(jìn)行比較,感興趣的小伙伴們可以參考一下
    2016-02-02
  • 解讀Spring-boot的debug調(diào)試

    解讀Spring-boot的debug調(diào)試

    這篇文章主要介紹了解讀Spring-boot的debug調(diào)試,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • springboot 使用poi進(jìn)行數(shù)據(jù)的導(dǎo)出過程詳解

    springboot 使用poi進(jìn)行數(shù)據(jù)的導(dǎo)出過程詳解

    這篇文章主要介紹了springboot 使用poi進(jìn)行數(shù)據(jù)的導(dǎo)出過程詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-09-09
  • Java中Collection和Collections的區(qū)別

    Java中Collection和Collections的區(qū)別

    Collection是一個(gè)集合接口,集合類的頂級接口,Collections是一個(gè)包裝類,本文主要介紹了Java中Collection和Collections的區(qū)別,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-04-04
  • 詳解Spring事務(wù)和事務(wù)傳播機(jī)制

    詳解Spring事務(wù)和事務(wù)傳播機(jī)制

    本文主要介紹了MySQL中的事務(wù)以及如何在Spring框架中實(shí)現(xiàn)事務(wù)管理,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-12-12
  • Springboot整合FreeMarker的實(shí)現(xiàn)示例

    Springboot整合FreeMarker的實(shí)現(xiàn)示例

    本文主要介紹了Springboot整合FreeMarker的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-02-02

最新評論

保山市| 修武县| 桂平市| 横山县| 镇平县| 垦利县| 西丰县| 东安县| 平潭县| 阿合奇县| 石景山区| 贵港市| 句容市| 云霄县| 米林县| 甘泉县| 清河县| 屏东市| 赤峰市| 南京市| 涟源市| 玉环县| 高州市| 昭通市| 大竹县| 桐梓县| 宝兴县| 鹤壁市| 治县。| 儋州市| 沧源| 九龙县| 贵溪市| 泊头市| 察哈| 邻水| 安图县| 朝阳区| 大冶市| 长春市| 华容县|