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

java中HashMap的七種遍歷方式小結(jié)

 更新時(shí)間:2024年01月12日 11:09:44   作者:IT楓斗者  
本文主要介紹了java中HashMap的七種遍歷方式小結(jié),包括迭代器,For Each,Lambda,Streams API等,具有一定的參考價(jià)值,感興趣的可以了解一下

HashMap遍歷方式分類(lèi)

  • HashMap的多種遍歷方式從大體中歸類(lèi) , 可以分為以下4類(lèi) :
  • 迭代器(Iterator)
  • For Each
  • Lambda (JDK 1.8 +)
  • Streams API (JDK 1.8 +)
  • 但是每種方式又有不同的實(shí)現(xiàn)類(lèi)型 :
  • 使用迭代器(Iterator)EntrySet / KeySet 的方式進(jìn)行遍歷;
  • 使用 For Each EntrySet / For Each KeySet 的方式進(jìn)行遍歷;
  • 使用 Lambda 表達(dá)式的方式進(jìn)行遍歷;
  • 使用 Streams API 單線(xiàn)程 / 多線(xiàn)程 的方式進(jìn)行遍歷;

迭代器(Iterator)EntrySet

HashMap<String , String> hashMap = new HashMap<>();

hashMap.put("1","name");
hashMap.put("2","age");

Iterator<Map.Entry<String, String>> iterator = hashMap.entrySet().iterator();

while (iterator.hasNext()) {
    Map.Entry<String, String> entry = iterator.next();
    Object key = entry.getKey();
    Object val = entry.getValue();
    System.out.println("key : " + key + "-----" + "val : " + val);
}

迭代器(Iterator)KeySet

HashMap<String , String> hashMap = new HashMap<>();

hashMap.put("1","name");
hashMap.put("2","age");

Iterator<String> iterator = hashMap.keySet().iterator();

while (iterator.hasNext()) {
    String key = iterator.next();
    Object val = hashMap.get(key);
    System.out.println("key : " + key + "-----" + "val : " + val);
}

For Each EntrySet

HashMap<String , String> hashMap = new HashMap<>();

hashMap.put("1","name");
hashMap.put("2","age");

for (Map.Entry<String, String> entry : hashMap.entrySet()) {
    Object key = entry.getKey();
    Object val = entry.getValue();
    System.out.println("key : " + key + "-----" + "val : " + val);
}

For Each KeySet

HashMap<String , String> hashMap = new HashMap<>();

hashMap.put("1","name");
hashMap.put("2","age");

for (String key : hashMap.keySet()) {
    Object val = hashMap.get(key);
    System.out.println("key : " + key + "-----" + "val : " + val);
}

Lambda

HashMap<String , String> hashMap = new HashMap<>();

hashMap.put("1","name");
hashMap.put("2","age");

hashMap.forEach((key , val) -> System.out.println("key : " + key + "-----" + "val : " + val));

Streams API 單線(xiàn)程

HashMap<String , String> hashMap = new HashMap<>();

hashMap.put("1","name");
hashMap.put("2","age");

hashMap.entrySet().stream().forEach((entry) -> {
    Object key = entry.getKey();
    Object val = entry.getValue();
    System.out.println("key : " + key + "-----" + "val : " + val);
});

Streams API 多線(xiàn)程

HashMap<String , String> hashMap = new HashMap<>();

hashMap.put("1","name");
hashMap.put("2","age");

hashMap.entrySet().stream().parallel().forEach((entry) -> {
    Object key = entry.getKey();
    Object val = entry.getValue();
    System.out.println("key : " + key + "-----" + "val : " + val);
});

  • 我們不能在遍歷Map時(shí)使用map.remove()方法 , 否則就會(huì)拋出異常 :

  • java.util.ConcurrentModificationException , 這種辦法是非安全的 , 我們可以使用Iterator.remove() ,或者是Lambda 中的 removeIf() , 或者是Stream 中的 filter() 過(guò)濾或者刪除相關(guān)數(shù)據(jù)

到此這篇關(guān)于java中HashMap的七種遍歷方式小結(jié)的文章就介紹到這了,更多相關(guān)java HashMap遍歷內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家! 

相關(guān)文章

  • java中獲取json的所有key方法

    java中獲取json的所有key方法

    下面小編就為大家分享一篇java中獲取json的所有key方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-03-03
  • Java網(wǎng)絡(luò)編程之TCP程序設(shè)計(jì)

    Java網(wǎng)絡(luò)編程之TCP程序設(shè)計(jì)

    這篇文章主要為大家詳細(xì)介紹了Java網(wǎng)絡(luò)編程之TCP程序設(shè)計(jì),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-08-08
  • SpringBoot接口獲取參數(shù)的常用注解詳解

    SpringBoot接口獲取參數(shù)的常用注解詳解

    SpringBoot 接口獲取參數(shù)的注解非常豐富,這篇文章主要為大家詳細(xì)介紹了一些常用參數(shù)注解的使用,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解下
    2026-01-01
  • Java用戶(hù)登錄驗(yàn)證代碼

    Java用戶(hù)登錄驗(yàn)證代碼

    本文給大家使用java代碼實(shí)現(xiàn)用戶(hù)登錄驗(yàn)證功能,當(dāng)用戶(hù)輸入三次錯(cuò)誤后,用戶(hù)不可以再次登錄的。具體實(shí)現(xiàn)代碼,大家可以參考下本教程
    2016-08-08
  • Java并發(fā)應(yīng)用之任務(wù)執(zhí)行分析

    Java并發(fā)應(yīng)用之任務(wù)執(zhí)行分析

    這篇文章主要為大家詳細(xì)介紹了JavaJava并發(fā)應(yīng)用編程中任務(wù)執(zhí)行分析的相關(guān)知識(shí),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下
    2023-07-07
  • IDEA接入Deepseek的圖文教程

    IDEA接入Deepseek的圖文教程

    在本篇文章中,我們將詳細(xì)介紹如何在 JetBrains IDEA 中使用 Continue 插件接入 DeepSeek,讓你的 AI 編程助手更智能,提高開(kāi)發(fā)效率,感興趣的小伙伴跟著小編一起來(lái)看看吧
    2025-03-03
  • Mybatis-plus配置多數(shù)據(jù)源,連接多數(shù)據(jù)庫(kù)方式

    Mybatis-plus配置多數(shù)據(jù)源,連接多數(shù)據(jù)庫(kù)方式

    這篇文章主要介紹了Mybatis-plus配置多數(shù)據(jù)源,連接多數(shù)據(jù)庫(kù)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • Dubbo+zookeeper?最簡(jiǎn)單的分布式搭建方案

    Dubbo+zookeeper?最簡(jiǎn)單的分布式搭建方案

    這篇文章主要介紹了Dubbo+zookeeper?最簡(jiǎn)單的分布式搭建,本例采用?dubbo+zookeeper?搭建分布式系統(tǒng),環(huán)境?jdk1.8,需要的朋友可以參考下
    2022-04-04
  • Spring?@Scheduled定時(shí)器注解使用方式

    Spring?@Scheduled定時(shí)器注解使用方式

    這篇文章主要介紹了Spring?@Scheduled定時(shí)器注解使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • Java服務(wù)器處理圖片上傳的方法

    Java服務(wù)器處理圖片上傳的方法

    這篇文章主要為大家詳細(xì)介紹了Java服務(wù)器處理圖片上傳,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-06-06

最新評(píng)論

呼伦贝尔市| 双鸭山市| 板桥市| 巨野县| 龙泉市| 阿拉善右旗| 两当县| 漠河县| 博白县| 广河县| 蛟河市| 南昌县| 崇信县| 吉安县| 灌阳县| 东兴市| 鄢陵县| 炉霍县| 康定县| 大埔县| 涟源市| 博兴县| 松阳县| 东港市| 颍上县| 正蓝旗| 台中市| 文山县| 高陵县| 博乐市| 澄江县| 峨眉山市| 平塘县| 紫金县| 新余市| 漳州市| 连云港市| 玉山县| 疏勒县| 平南县| 巴林右旗|