Java實(shí)現(xiàn)Map集合遍歷的四種常見(jiàn)方式與用法分析
本文實(shí)例講述了Java實(shí)現(xiàn)Map集合遍歷的四種常見(jiàn)方式與用法。分享給大家供大家參考,具體如下:
~Map集合是鍵值對(duì)形式存儲(chǔ)值的,所以遍歷Map集合無(wú)非就是獲取鍵和值,根據(jù)實(shí)際需求,進(jìn)行獲取鍵和值
1. 無(wú)非就是通過(guò)map.keySet()
獲取到值,然后根據(jù)鍵獲取到值
for(String s:map.keySet()){ System.out.println("key : "+s+" value : "+map.get(s)); }
2. 通過(guò)Map.Entry(String,String)
獲取,然后使用entry.getKey()
獲取到鍵,通過(guò)entry.getValue()
獲取到值
for(Map.Entry<String, String> entry : map.entrySet()){ System.out.println("鍵 key :"+entry.getKey()+" 值value :"+entry.getValue()); }
3. 其中通過(guò)Iterator也是為了最終獲得entry,所以理解其用法,可以很好的使用和掌握
package com.bie; import java.util.HashMap; import java.util.Iterator; import java.util.Map; /** * @author BieHongLi * @version 創(chuàng)建時(shí)間:2017年2月25日 下午8:58:54 * */ public class MapTest01 { public static void main(String[] args) { Map<String, String> map=new HashMap<String, String>(); map.put("張三1", "男"); map.put("張三2", "男"); map.put("張三3", "男"); map.put("張三4", "男"); map.put("張三5", "男"); //第一種遍歷map的方法,通過(guò)加強(qiáng)for循環(huán)map.keySet(),然后通過(guò)鍵key獲取到value值 for(String s:map.keySet()){ System.out.println("key : "+s+" value : "+map.get(s)); } System.out.println("===================================="); //第二種只遍歷鍵或者值,通過(guò)加強(qiáng)for循環(huán) for(String s1:map.keySet()){//遍歷map的鍵 System.out.println("鍵key :"+s1); } for(String s2:map.values()){//遍歷map的值 System.out.println("值value :"+s2); } System.out.println("===================================="); //第三種方式Map.Entry<String, String>的加強(qiáng)for循環(huán)遍歷輸出鍵key和值value for(Map.Entry<String, String> entry : map.entrySet()){ System.out.println("鍵 key :"+entry.getKey()+" 值value :"+entry.getValue()); } System.out.println("===================================="); //第四種Iterator遍歷獲取,然后獲取到Map.Entry<String, String>,再得到getKey()和getValue() Iterator<Map.Entry<String, String>> it=map.entrySet().iterator(); while(it.hasNext()){ Map.Entry<String, String> entry=it.next(); System.out.println("鍵key :"+entry.getKey()+" value :"+entry.getValue()); } System.out.println("===================================="); } }
4. Map的一些常用的知識(shí)點(diǎn),和取值的變形形式,都需要掌握和了解
package com.bie; import java.util.Collection; import java.util.HashMap; import java.util.Map; import java.util.Set; /** * @author BieHongLi * @version 創(chuàng)建時(shí)間:2017年2月26日 上午11:29:59 * */ public class MapTest02 { public static void main(String[] args) { //1:key,value都是object類(lèi)型的 //2:key必須是唯一的,不唯一,那么后面的value會(huì)把前面的value覆蓋 //3:對(duì)于HashMap,key可以為空 //4:value可以為空,也可以為空 //5:HashTable的key和value不能為空 //6:properties的key和value必須為String類(lèi)型的 Map<String , String> map=new HashMap<>(); map.put("null", "this is null 1"); map.put("null", "this is null 2"); System.out.println(map.size()); System.out.println(map.get(null)); System.out.println("============================="); //循環(huán)顯示map類(lèi)型的key以及對(duì)應(yīng)的value //三個(gè)集合,key的集合,value的集合,鍵值對(duì)的集合 Set<String> keys=map.keySet(); for(String s:keys){ System.out.println(s); } System.out.println("============================="); Collection<String> values=map.values();//值的集合 System.out.println(values); System.out.println("============================="); Set<Map.Entry<String, String>> entrys=map.entrySet();//鍵值對(duì)的集合 for(Map.Entry<String, String> entry:entrys){ System.out.println(entry.getKey()+" "+entry.getValue()); } } }
更多java相關(guān)內(nèi)容感興趣的讀者可查看本站專(zhuān)題:《Java數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Java操作DOM節(jié)點(diǎn)技巧總結(jié)》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總》
希望本文所述對(duì)大家java程序設(shè)計(jì)有所幫助。
相關(guān)文章
SpringBoot+WebSocket實(shí)現(xiàn)即時(shí)通訊功能(Spring方式)
今天給大家分享一個(gè)SpringBoot+WebSocket實(shí)現(xiàn)即時(shí)通訊功能(Spring方式),WebSocket是一種在單個(gè)TCP連接上進(jìn)行全雙工通信的協(xié)議,文章通過(guò)代碼示例給大家介紹的非常詳細(xì),需要的朋友可以參考下2023-10-10Spring使用@Conditional進(jìn)行條件裝配的實(shí)現(xiàn)
在spring中有些bean需要滿(mǎn)足某些環(huán)境條件才創(chuàng)建某個(gè)bean,這個(gè)時(shí)候可以在bean定義上使用@Conditional注解來(lái)修飾,所以本文給大家介紹了Spring使用@Conditional進(jìn)行條件裝配的實(shí)現(xiàn),文中通過(guò)代碼示例給大家介紹的非常詳細(xì),需要的朋友可以參考下2023-12-12springboot整合企微webhook機(jī)器人發(fā)送消息提醒
這篇文章主要為大家介紹了springboot整合企微webhook機(jī)器人發(fā)送消息提醒,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-12-12解決CollectionUtils.isNotEmpty()不存在的問(wèn)題
這篇文章主要介紹了解決CollectionUtils.isNotEmpty()不存在的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-02-02Spring Boot 項(xiàng)目中整合 MyBatis 和 PageHel
這篇文章主要介紹了Spring Boot 項(xiàng)目中整合 MyBatis 和 PageHelper的操作步驟,整合 PageHelper 到 Spring Boot 項(xiàng)目中主要包括添加依賴(lài)、配置數(shù)據(jù)源與 MyBatis、配置 PageHelper 以及在業(yè)務(wù)邏輯中使用 PageHelper 進(jìn)行分頁(yè)查詢(xún),需要的朋友可以參考下2024-04-04Java數(shù)據(jù)類(lèi)型實(shí)現(xiàn)自動(dòng)與強(qiáng)制轉(zhuǎn)換的示例代碼
Java數(shù)據(jù)類(lèi)型之間的轉(zhuǎn)換有自動(dòng)轉(zhuǎn)換和強(qiáng)制類(lèi)型轉(zhuǎn)換,這篇文章主要給大家介紹Java數(shù)據(jù)類(lèi)型如何實(shí)現(xiàn)自動(dòng)轉(zhuǎn)換與強(qiáng)制轉(zhuǎn)換,需要的朋友可以參考下2023-05-05SpringBoot中Mockito單元測(cè)試入門(mén)
單元測(cè)試在很多地方都用的到,本文主要介紹了SpringBoot中Mockito單元測(cè)試入門(mén),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-06-06