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

在Java 中操作 Map時高效遍歷和安全刪除數(shù)據(jù)的方法

 更新時間:2025年06月19日 09:20:23   作者:白侖色  
本文介紹Java中高效遍歷和安全刪除Map的四種方式及三種刪除策略,強調(diào)避免并發(fā)修改異常需使用Iterator或removeIf,性能優(yōu)化建議根據(jù)Map類型選擇遍歷方法,并提供完整示例代碼,感興趣的朋友一起看看吧

在 Java 中操作 Map 時,高效遍歷和安全刪除數(shù)據(jù)可以通過以下方式實現(xiàn):

一、遍歷 Map 的 4 種高效方式

1. 傳統(tǒng)迭代器(Iterator)

Map<String, Integer> map = new HashMap<>();
map.put("key1", 5);
map.put("key2", 3);
Iterator<Map.Entry<String, Integer>> iterator = map.entrySet().iterator();
while (iterator.hasNext()) {
    Map.Entry<String, Integer> entry = iterator.next();
    String key = entry.getKey();
    Integer value = entry.getValue();
    System.out.println(key + ": " + value);
}

2. Java 8+ forEach + Lambda

map.forEach((key, value) -> {
    System.out.println(key + ": " + value);
});

3. 增強 for 循環(huán)(遍歷 EntrySet)

for (Map.Entry<String, Integer> entry : map.entrySet()) {
    String key = entry.getKey();
    Integer value = entry.getValue();
    // ...
}

4. Stream API(Java 8+)

map.entrySet().stream()
    .filter(entry -> entry.getValue() > 3) // 過濾條件
    .forEach(entry -> {
        System.out.println(entry.getKey();
    });

二、安全刪除 Map 中的數(shù)據(jù)

1. 遍歷時刪除

Iterator<Map.Entry<String, Integer>> iterator = map.entrySet().iterator();
while (iterator.hasNext()) {
    Map.Entry<String, Integer> entry = iterator.next();
    if (entry.getValue() < 3) {
        iterator.remove();
    }
}

2. Java 8+ removeIf

map.entrySet().removeIf(entry -> entry.getValue() < 3);

3. 直接刪除(已知 Key)

map.remove("key1");

三、關鍵注意事項

  • 避免并發(fā)修改異常遍歷時直接調(diào)用 map.remove(key) 會導致 ConcurrentModificationException,必須使用 Iterator.remove() 或 removeIf。

  • 性能優(yōu)化

    • 對 HashMap,優(yōu)先遍歷 entrySet()(直接獲取 Key-Value)。
    • 對只讀操作,forEach 和 Stream 性能接近;需過濾/刪除時優(yōu)先用 removeIf。
  • 并發(fā)場景多線程環(huán)境下使用 ConcurrentHashMap 并結合 Iterator.remove() 或原子操作。

四、完整示例代碼

Map<String, Integer> map = new HashMap<>(Map.of(
    "key1", 5,
    "key2", 3,
    "key3", 2
));
// 遍歷并刪除 value < 3
map.entrySet().removeIf(entry -> entry.getValue() < 3);
// 輸出結果:{key1=5, key2=3}
System.out.println(map);

通過上述方法,可以高效且安全地操作 Java 中的 Map 數(shù)據(jù)結構。

到此這篇關于在Java 中操作 Map時高效遍歷和安全刪除數(shù)據(jù)的方法的文章就介紹到這了,更多相關java map遍歷內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Mybatis-plus批量去重插入ON DUPLICATE key update使用方式

    Mybatis-plus批量去重插入ON DUPLICATE key update使用方式

    這篇文章主要介紹了Mybatis-plus批量去重插入ON DUPLICATE key update使用方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • Java學習手冊之Filter和Listener使用方法

    Java學習手冊之Filter和Listener使用方法

    這篇文章主要介紹了Java學習手冊之Filter?和?Listener使用方法的相關資料,Filter是一種攔截器,可以在請求到達Servlet之前或響應返回客戶端之前對請求和響應進行攔截和處理,Listener用于監(jiān)聽JavaWeb應用中的各種事件,需要的朋友可以參考下
    2025-04-04
  • Spring?Boot?使用?Hutool-jwt?實現(xiàn)?token?驗證功能

    Spring?Boot?使用?Hutool-jwt?實現(xiàn)?token?驗證功能

    JWT?就是一種網(wǎng)絡身份認證和信息交換格式,這篇文章主要介紹了Spring Boot使用Hutool-jwt實現(xiàn)token驗證,需要的朋友可以參考下
    2023-07-07
  • Java8實現(xiàn)對List<Integer>的求和

    Java8實現(xiàn)對List<Integer>的求和

    這篇文章主要介紹了Java8實現(xiàn)對List<Integer>的求和方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • Mybatis中Like的三種使用解讀

    Mybatis中Like的三種使用解讀

    這篇文章主要介紹了Mybatis中Like的三種使用解讀,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • SSM 實現(xiàn)登錄驗證碼功能(附源碼)

    SSM 實現(xiàn)登錄驗證碼功能(附源碼)

    這篇文章主要介紹了SSM 實現(xiàn)登錄驗證碼功能,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-12-12
  • 一篇文章帶你入門java工廠模式

    一篇文章帶你入門java工廠模式

    這篇文章主要介紹了Java工廠模式,結合實例形式詳細分析了java基本數(shù)據(jù)類型、數(shù)據(jù)類型轉(zhuǎn)換、算術運算符、邏輯運算符等相關原理與操作技巧,需要的朋友可以參考下
    2021-08-08
  • Springboot有效防止XSS攻擊的幾種方法

    Springboot有效防止XSS攻擊的幾種方法

    本文介紹了在SpringBoot項目中防止XSS攻擊的多種方法,包括輸入驗證和過濾、輸出編碼、使用安全框架、使用模板引擎的自動轉(zhuǎn)義功能以及設置安全HTTP頭等,感興趣的可以了解一下
    2024-12-12
  • Java設計模式中的簡單工廠模式解析

    Java設計模式中的簡單工廠模式解析

    這篇文章主要介紹了Java設計模式中的簡單工廠模式解析,簡單工廠模式提供一個創(chuàng)建對象實例的功能,而無須關心其具體實現(xiàn),被創(chuàng)建實例的類型可以是接口、抽象類,也可以是具體的類,需要的朋友可以參考下
    2023-11-11
  • HashMap實現(xiàn)保存兩個key相同的數(shù)據(jù)

    HashMap實現(xiàn)保存兩個key相同的數(shù)據(jù)

    這篇文章主要介紹了HashMap實現(xiàn)保存兩個key相同的數(shù)據(jù)操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-06-06

最新評論

二连浩特市| 专栏| 莱西市| 定兴县| 邻水| 英吉沙县| 尼玛县| 温州市| 和硕县| 平遥县| 大丰市| 独山县| 乌海市| 浦东新区| 凤冈县| 牟定县| 牙克石市| 防城港市| 纳雍县| 峨眉山市| 固安县| 股票| 大化| 正定县| 凉山| 观塘区| 丰台区| 黄骅市| 静宁县| 寻甸| 兴安县| 余姚市| 东乡| 玉林市| 漳浦县| 凤阳县| 克拉玛依市| 松桃| 易门县| 临高县| 辽阳市|