Java 中 Map 集合的三種遍歷方式小結(jié)
Map 集合的遍歷方式有 3 種:
方式一:鍵找值的方式遍歷:先獲取 Map 集合全部的鍵,再根據(jù)遍歷鍵找值。
方式二:鍵值對(duì)的方式遍歷,把“鍵值對(duì)“看成一個(gè)整體,難度較大。
方式三:JDK 1.8 開(kāi)始之后的新技術(shù):Lambda 表達(dá)式。
Map 集合的遍歷方式一: 鍵找值
先通過(guò) keySet 方法, 獲取 Map 集合的全部鍵的 Set 集合。
遍歷鍵的 Set 集合,然后通過(guò)鍵提取對(duì)應(yīng)值。
鍵找值涉及到的 API:
keySet() 獲取所有鍵的集合
get(Object key) 根據(jù)鍵獲取值
演示代碼
public static void main(String[] args) { Map<String, Integer> maps = new HashMap<>(); maps.put("華為", 10); maps.put("小米", 5); maps.put("iPhone", 6); maps.put("生活用品", 15); maps.put("java", 20); maps.put("python", 17); // 拿到全部集合的全部鍵 Set<String> keys = maps.keySet(); // 遍歷鍵, 根據(jù)鍵獲取值 for (String key: keys) { int value = maps.get(key); System.out.println(key + "--->" +value); } }
Map 集合的遍歷方式二: 鍵值對(duì)
先通過(guò) entrySet 方法把 Map 集合轉(zhuǎn)換成 Set 集合,Set 集合中每個(gè)元素都是鍵值對(duì)實(shí)體類型了(將鍵和值看成一個(gè)整體)。
遍歷獲取到的 Set 集合,然后通過(guò) getKey 提取鍵, 以及 getValue 提取值。
鍵值對(duì)設(shè)計(jì)到的 API:
Set<Map.Entry<K,V>> entrySet() 獲取所有鍵值對(duì)對(duì)象的集合
getKey() 獲得鍵
getValue() 獲取值
演示代碼
public static void main(String[] args) { Map<String, Integer> maps = new HashMap<>(); maps.put("華為", 10); maps.put("小米", 5); maps.put("iPhone", 6); maps.put("生活用品", 15); maps.put("java", 20); maps.put("python", 17); // 把Map集合轉(zhuǎn)成Set集合 Set<Map.Entry<String, Integer>> newMaps = maps.entrySet(); // 遍歷轉(zhuǎn)成的Set集合 for (Map.Entry<String, Integer> newMap : newMaps) { String key = newMap.getKey(); // 獲取key Integer value = newMap.getValue(); // 獲取value System.out.println(key + "--->" + value); } }
Map 集合的遍歷方式三: Lambda
得益于 JDK 8 開(kāi)始的新技術(shù) Lambda 表達(dá)式,提供了一種更簡(jiǎn)單、更直接的遍歷集合的方式。
Map 結(jié)合 Lambda 遍歷的 API:
forEach(BiConsumer<? super K, ? super V> action) 結(jié)合 lambda 遍歷 Map 集合
演示代碼
public static void main(String[] args) { Map<String, Integer> maps = new HashMap<>(); maps.put("華為", 10); maps.put("小米", 5); maps.put("iPhone", 6); maps.put("生活用品", 15); maps.put("java", 20); maps.put("python", 17); // 使用forEach方法遍歷對(duì)象 maps.forEach(new BiConsumer<String, Integer>() { @Override public void accept(String key, Integer value) { System.out.println(key + "--->" + value); } }); }
結(jié)合 Lambda 簡(jiǎn)化代碼
public static void main(String[] args) { Map<String, Integer> maps = new HashMap<>(); maps.put("華為", 10); maps.put("小米", 5); maps.put("iPhone", 6); maps.put("生活用品", 15); maps.put("java", 20); maps.put("python", 17); // 使用forEach方法集合Lambda表達(dá)式遍歷對(duì)象 maps.forEach((key, value) -> System.out.println(key + "--->" + value)); }
到此這篇關(guān)于Java 中 Map 集合的三種遍歷方式的文章就介紹到這了,更多相關(guān)Java 中 Map 集合遍歷內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
java stream中Collectors的用法實(shí)例精講
這篇文章主要為大家介紹了java stream中Collectors的用法實(shí)例精講,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-09-09在SSM框架中將圖片上傳到數(shù)據(jù)庫(kù)中的實(shí)現(xiàn)代碼
這篇文章主要介紹了在SSM框架中將圖片上傳到數(shù)據(jù)庫(kù)中的實(shí)現(xiàn)代碼,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-03-03JavaWeb實(shí)現(xiàn)壓縮多個(gè)文件并下載實(shí)例詳解
本文通過(guò)實(shí)例代碼給大家講解了javaweb實(shí)現(xiàn)壓縮多個(gè)文件并下載功能,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下吧2017-07-07springboot集成redis哨兵集群的實(shí)現(xiàn)示例
本文主要介紹了springboot集成redis哨兵集群的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-08-08mybatis-plus 實(shí)現(xiàn)分頁(yè)查詢的示例代碼
本文介紹了在MyBatis-Plus中實(shí)現(xiàn)分頁(yè)查詢,包括引入依賴、配置分頁(yè)插件、使用分頁(yè)查詢以及在控制器中調(diào)用分頁(yè)查詢的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2024-11-11Java實(shí)現(xiàn)IP地址到二進(jìn)制的轉(zhuǎn)換
這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)IP地址到二進(jìn)制的轉(zhuǎn)換,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-11-11java定時(shí)任務(wù)的實(shí)現(xiàn)方法
java定時(shí)任務(wù)的實(shí)現(xiàn)方法,需要的朋友可以參考一下2013-03-03基于OpenCV與JVM實(shí)現(xiàn)矩陣處理圖像
本文主要介紹了Java圖像處理實(shí)戰(zhàn)之基于OpenCV與JVM實(shí)現(xiàn)矩陣處理圖像。文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)圖像處理有一定的幫助,感興趣的可以試一試2022-01-01