Java中Map循環(huán)遍歷的五種方法實(shí)現(xiàn)
因?yàn)镸ap比較常用,所以今天來(lái)總結(jié)下Map取值比較常用的幾種遍歷方法。
1、創(chuàng)建一個(gè)Enum
public enum FactoryStatus {
? ? BAD(0,"ou"),
? ? GOOD(1,"yeah");
? ? private int status;
? ? private String description;
? ? FactoryStatus(int status, String description){
? ? ? ? this.status=status;
? ? ? ? this.description=description;
? ? }
? ? public int getStatus() {
? ? ? ? return status;
? ? }
? ? public String getDescription(){
? ? ? ? return description;
? ? }
}這個(gè)Enum作為Map的value。
2、開(kāi)始遍歷
方法一
Set set = map.keySet();
for (Object o : set) {
System.out.println(o+""+map.get(o));
}
通過(guò)key的set集合進(jìn)行遍歷,然后通過(guò)key來(lái)取map的value,此方法用的比較多。
方法二
Set set = map.keySet();
Iterator iterator = set.iterator();
while (iterator.hasNext()){
Object next = iterator.next();
System.out.println("key為:"+next+",value為:"+map.get(next));
}
將key的set集合以迭代器的方式遍歷出來(lái),然后通過(guò)key來(lái)取map的value。
方法三
Set<Map.Entry<String, FactoryStatus>> entries = map.entrySet();
Iterator<Map.Entry<String, FactoryStatus>> iterator1 = entries.iterator();
while (iterator1.hasNext()){
Map.Entry<String, FactoryStatus> next = iterator1.next();
System.out.println("方法三的key為:"+next.getKey()+",value為:"+next.getValue());
}
將Map的鍵值對(duì)以迭代器的方式遍歷出來(lái),然后通過(guò).getKey()與.getValue()方法取k、v的值。
方法四
Collection<FactoryStatus> values = map.values();
for (FactoryStatus value : values) {
System.out.println("方法四的value為:"+value);
}
此方法直接取出map的value并放在collection中,然后將v循環(huán)遍歷。
方法五
Set<Map.Entry<String, FactoryStatus>> entries = map.entrySet();
for (Map.Entry<String, FactoryStatus> entry : entries) {
System.out.println("方法五的key為:"+entry.getKey()+",value為:"+entry.getValue());
}
取得所有鍵值對(duì)來(lái)通過(guò)foreach循環(huán),遍歷出所有k、v,理論上推薦這種方法,尤其是容量較大的時(shí)候。
到此這篇關(guān)于Java中Map循環(huán)遍歷的五種方法的文章就介紹到這了,更多相關(guān)Java Map循環(huán)遍歷內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
原生java代碼實(shí)現(xiàn)碼云第三方驗(yàn)證登錄的示例代碼
這篇文章主要介紹了原生java代碼實(shí)現(xiàn)碼云第三方驗(yàn)證登錄的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04
java解析php函數(shù)json_encode unicode 編碼問(wèn)題
這篇文章主要介紹了java解析php函數(shù)json_encode unicode 編碼問(wèn)題,需要的朋友可以參考下2016-04-04
詳解Java線(xiàn)程池是如何重復(fù)利用空閑線(xiàn)程的
在Java開(kāi)發(fā)中,經(jīng)常需要?jiǎng)?chuàng)建線(xiàn)程去執(zhí)行一些任務(wù),實(shí)現(xiàn)起來(lái)也非常方便,此時(shí),我們很自然會(huì)想到使用線(xiàn)程池來(lái)解決這個(gè)問(wèn)題,文中給大家提到使用線(xiàn)程池的好處,對(duì)Java線(xiàn)程池空閑線(xiàn)程知識(shí)感興趣的朋友一起看看吧2021-06-06
SpringCloud 搭建企業(yè)級(jí)開(kāi)發(fā)框架之實(shí)現(xiàn)多租戶(hù)多平臺(tái)短信通知服務(wù)(微服務(wù)實(shí)戰(zhàn))
這篇文章主要介紹了SpringCloud 搭建企業(yè)級(jí)開(kāi)發(fā)框架之實(shí)現(xiàn)多租戶(hù)多平臺(tái)短信通知服務(wù),系統(tǒng)可以支持多家云平臺(tái)提供的短信服務(wù)。這里以阿里云和騰訊云為例,集成短信通知服務(wù),需要的朋友可以參考下2021-11-11
使用Spring事件監(jiān)聽(tīng)機(jī)制實(shí)現(xiàn)跨模塊調(diào)用的步驟詳解
Spring 事件監(jiān)聽(tīng)機(jī)制是 Spring 框架中用于在應(yīng)用程序的不同組件之間進(jìn)行通信的一種機(jī)制,Spring 事件監(jiān)聽(tīng)機(jī)制基于觀察者設(shè)計(jì)模式,使得應(yīng)用程序的各個(gè)部分可以解耦,提高模塊化和可維護(hù)性,本文給大家介紹了使用Spring事件監(jiān)聽(tīng)機(jī)制實(shí)現(xiàn)跨模塊調(diào)用,需要的朋友可以參考下2024-06-06
SpringMVC+Mybatis實(shí)現(xiàn)的Mysql分頁(yè)數(shù)據(jù)查詢(xún)的示例
本篇文章主要介紹了SpringMVC+Mybatis實(shí)現(xiàn)的Mysql分頁(yè)數(shù)據(jù)查詢(xún)的示例,具有一定的參考價(jià)值,有興趣的可以了解一下2017-08-08
Spring Boot獲取微信用戶(hù)信息的超簡(jiǎn)單方法
這篇文章主要給大家介紹了關(guān)于Spring Boot獲取微信用戶(hù)信息的超簡(jiǎn)單方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Spring Boot具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09

