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

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

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

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

一、先搞懂:Map遍歷的核心目標

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

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遍歷(最通用)

這是最基礎也最常用的方式,支持同時獲取鍵和值,兼容所有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表達式遍歷(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("價格:" + value + "元");
}

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

如果遍歷過程中需要刪除元素,迭代器是安全選擇(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(); // 安全刪除價格低于8的水果
    }
}
System.out.println("刪除后的Map:" + fruitPrice);

三、避坑提醒

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

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

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

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

相關文章

  • 理解Java垃圾回收

    理解Java垃圾回收

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

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

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

    淺談MyBatis所有的jdbcType類型

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

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

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

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

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

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

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

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

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

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

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

    詳解Spring事務和事務傳播機制

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

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

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

最新評論

容城县| 鸡东县| 侯马市| 交城县| 图片| 威宁| 荆门市| 开阳县| 温泉县| 吉水县| 林口县| 伽师县| 延长县| 报价| 顺义区| 炉霍县| 璧山县| 巴青县| 沁源县| 巨鹿县| 石林| 仁寿县| 汝城县| 西安市| 玛多县| 宝山区| 尼勒克县| 高邑县| 汉源县| 高州市| 商河县| 高青县| 鄱阳县| 西昌市| 井陉县| 天津市| 满城县| 江源县| 靖宇县| 汶川县| 名山县|