Java遍歷Map對象集合的六種方式代碼示例
Java如何遍歷Map對象的4種方法
今天比昨天,更優(yōu)秀
Map簡介
- Map是用于保存具有映射關系的數(shù)據(jù),保存兩組值,key和value,這兩組值可以是任何應用類型的數(shù)據(jù)。
- Map典型的實現(xiàn)類是HashMap、Hashtable(HashMap子類還有LinkedHashMap)、SortedMap子接口及實現(xiàn)類TreeMap、WeakHashMap、IndentityHashMap等
Map遍歷第一種
Map<String, String> map = new HashMap<String, String>(); for (Map.Entry <String, String> entry : map.entrySet()) { System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue()); }
注意:如果Map值是空的則會報錯,拋出NullPointerException異常。
Map遍歷第二種
Map<String, String> map = new HashMap<String, String>(); //遍歷map中的鍵 for (String key : map.keySet()) { System.out.println("Key = " + key); } //遍歷map中的值 for (Integer value : map.values()) { System.out.println("Value = " + value); }
Map遍歷第三種(使用Iterator遍歷)
Map<String, String> map = new HashMap<String, String>(); Iterator<Map.Entry<String, String>> entries = map.entrySet().iterator(); while (entries.hasNext()) { Map.Entry<String, String> entry = entries.next(); System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue()); }
Map遍歷第四種
Map<String, String> map = new HashMap<String, String>(); for (String key : map.keySet()) { Integer value = map.get(key); System.out.println("Key = " + key + ", Value = " + value); }
Map遍歷第五種
Map<String, String> map = new HashMap<String, String>(); map.forEach((key, value) -> { System.out.println("Key = " + key + ", Value = " + value); });
Map遍歷第六種
Map<String, String> map = new HashMap<String, String>(); for (int i = 0; i < map.size(); i++) { String key = keySet.get(i); String Value = map.get(key); System.out.println("Key = " + key + ", Value = " + value); }
大家可以根據(jù)自己需要,自由選擇。
Map集合的應用有很多,以下是一些常見的應用場景:
統(tǒng)計詞頻:將文本中出現(xiàn)的單詞作為Key,出現(xiàn)次數(shù)作為Value存儲在Map集合中,可以方便地統(tǒng)計每個單詞在文本中出現(xiàn)的次數(shù)。
存儲配置信息:將配置文件中的配置項和對應的配置值存儲在Map集合中,可以方便地讀取和修改配置信息。
緩存數(shù)據(jù):將經(jīng)常使用的數(shù)據(jù)存儲在Map集合中,可以提高程序的運行效率,避免頻繁訪問數(shù)據(jù)庫或文件系統(tǒng)。
保存用戶信息:將用戶ID作為Key,用戶信息作為Value存儲在Map集合中,可以實現(xiàn)對用戶信息的快速訪問和修改。
實現(xiàn)圖結構:使用Map集合可以方便地實現(xiàn)圖結構,其中Key表示圖中的節(jié)點,Value表示與該節(jié)點相鄰的節(jié)點和邊的屬性。
實現(xiàn)緩存一致性:在分布式系統(tǒng)中,使用Map集合可以方便地實現(xiàn)緩存一致性,其中不同節(jié)點上的Map集合存儲相同的緩存數(shù)據(jù),通過協(xié)調(diào)不同節(jié)點上的更新操作可以保證緩存數(shù)據(jù)的一致性。
Map集合的應用有以下幾個方面:
存儲鍵值對:Map集合可以存儲鍵值對,其中鍵和值都可以是任意數(shù)據(jù)類型,鍵值對之間是一一對應的關系??梢酝ㄟ^遍歷Map集合,獲取鍵值對的值,實現(xiàn)對數(shù)據(jù)的訪問和操作。
數(shù)據(jù)去重:Map集合的鍵具有唯一性,因此可以利用這個特點進行數(shù)據(jù)去重操作。例如,在處理用戶提交的表單數(shù)據(jù)時,可以使用Map集合來存儲用戶提交的數(shù)據(jù),然后根據(jù)鍵值對的唯一性,進行去重操作。
統(tǒng)計數(shù)據(jù):Map集合可以存儲不同的數(shù)據(jù)值,并統(tǒng)計每個數(shù)據(jù)值出現(xiàn)的次數(shù)。例如,在統(tǒng)計某個文本中每個單詞出現(xiàn)的次數(shù)時,可以使用Map集合來存儲每個單詞出現(xiàn)的次數(shù)。
緩存數(shù)據(jù):Map集合可以用來緩存數(shù)據(jù),提高數(shù)據(jù)訪問的效率。例如,在Web開發(fā)中,可以使用Map集合來緩存一些經(jīng)常使用的數(shù)據(jù),減少對數(shù)據(jù)庫的訪問次數(shù),提高系統(tǒng)的性能。
實現(xiàn)自定義數(shù)據(jù)類型的映射:Map集合中的鍵和值可以是任意對象,因此可以通過Map集合來實現(xiàn)自定義數(shù)據(jù)類型的映射。例如,在處理圖形界面中的控件時,可以使用Map集合來實現(xiàn)控件的名稱和控件對象之間的映射關系。
總結
到此這篇關于Java遍歷Map對象集合的六種方式的文章就介紹到這了,更多相關Java遍歷Map對象集合內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
IDEA插件之Mybatis Log plugin 破解及安裝方法
這篇文章主要介紹了IDEA插件之Mybatis Log plugin 破解方法及安裝方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-09-09Java 中執(zhí)行動態(tài)表達式語句前中后綴Ognl、SpEL、Groovy、Jexl3
這篇文章主要介紹了Java 中執(zhí)行動態(tài)表達式語時的句前中后綴Ognl、SpEL、Groovy、Jexl3的相關資料,需要的朋友可以參考下面文章的詳細介紹2021-09-09Java實現(xiàn)Consul/Nacos根據(jù)GPU型號、顯存余量執(zhí)行負載均衡的步驟詳解
這篇文章主要介紹了Java實現(xiàn)Consul/Nacos根據(jù)GPU型號、顯存余量執(zhí)行負載均衡的步驟詳解,本文分步驟結合實例代碼給大家介紹的非常詳細,需要的朋友可以參考下2025-04-04java并發(fā)編程工具類PriorityBlockingQueue優(yōu)先級隊列
這篇文章主要為大家介紹了java并發(fā)編程工具類PriorityBlockingQueue優(yōu)先級隊列的方法示例應用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步2022-03-03SpringMVC中的ConversionServiceExposingInterceptor工具類解析
這篇文章主要介紹了SpringMVC中的ConversionServiceExposingInterceptor工具類解析,ConversionServiceExposingInterceptor是Spring MVC的一個HandlerInterceptor,用于向請求添加一個屬性,需要的朋友可以參考下2023-12-12springMvc異步的DeferredResult long?polling應用示例解析
這篇文章主要為大家介紹了springMvc中DeferredResult的long?polling應用示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-03-03SpringBoot沒有讀取到application.yml問題及解決
這篇文章主要介紹了SpringBoot沒有讀取到application.yml問題及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-12-12Java7之forkjoin簡介_動力節(jié)點Java學院整理
Java7引入了Fork Join的概念,來更好的支持并行運算。接下來通過本文給大家分享Java7之forkjoin簡介,感興趣的朋友一起看看吧2017-06-06