Java中hashMap遍歷的9種方式
在java開發(fā)中,hashMap是非常重要的容器類,存儲的是鍵值對(key,value)。
HashMap繼承AbstractMap,實(shí)現(xiàn)了Map、Cloneable、Serializable接口,非線程安全類,但是效率高。HashMap允許null健和null值,允許value重復(fù),但不允許key重復(fù)。HashMap有兩個參數(shù)影響其性能,初始容量和加載因子,當(dāng)哈希表中的條目數(shù)超出加載因子與當(dāng)前容量的乘積時,要對哈希表進(jìn)行refresh操作,重建內(nèi)部數(shù)據(jù)結(jié)構(gòu),容量擴(kuò)大為之前的兩倍,加載因子默認(rèn)值為0.75。
HashMap的遍歷方式
第一種,遍歷HashMap的entrySet鍵值對集合,通過HashMap.entrySet()得到鍵值對集合,通過迭代器Iterator遍歷集合得到key和value。
public static void main(String[] args) { Map<Object, Object> map = new HashMap<>(); map.put("caocao","11"); map.put("liubei","22"); map.put("sunquan","33"); first(map); } private static void first(Map<Object, Object> map) { Iterator<Map.Entry<Object, Object>> iterator = map.entrySet().iterator(); while (iterator.hasNext()) { Map.Entry<Object, Object> entry = iterator.next(); System.out.println("key:" + entry.getKey() + ",vaule:" + entry.getValue()); } }
第二種,遍歷HashMap的keySet集合,通過HashMap.keySet()得到key集合,通過迭代器Iterator遍歷集合得到key和value。
private static void second(Map<Object, Object> map) { Iterator<Object> iterator = map.keySet().iterator(); while (iterator.hasNext()) { Object key = iterator.next(); System.out.println("key:" + key + ",vaule:" + map.get(key)); } }
第三種,遍歷HashMap的values集合,通過HashMap.valus()得到value集合,通過迭代器Iterator遍歷集合得到key和value。
private static void third(Map<Object, Object> map) { Iterator<Object> iterator = map.values().iterator(); while (iterator.hasNext()) { Object value = iterator.next(); System.out.println("vaule:" + value); } }
第四種,遍歷HashMap的entrySet鍵值對集合,通過HashMap.entrySet()得到鍵值對集合,通過for循環(huán)遍歷集合得到key和value。
private static void fourth(Map<Object, Object> map) { for (Map.Entry<Object,Object> entry: map.entrySet()) { System.out.println("key:" + entry.getKey() + ",vaule:" + entry.getValue()); } }
第五種,遍歷HashMap的keySet集合,通過HashMap.keySet()得到key集合,通過for循環(huán)遍歷集合得到key和value。
private static void fifth(Map<Object, Object> map) { for(Object key : map.keySet()) { System.out.println("key:" + key + ",vaule:" + map.get(key)); } }
第六種,遍歷HashMap的values集合,通過HashMap.valus()得到value集合,通過for循環(huán)遍歷集合得到key和value。
private static void sixth(Map<Object, Object> map) { for (Object value : map.values()) { System.out.println("vaule:" + value); } }
第七種,通過Lambda遍歷HashMap得到key和value
private static void seventh(Map<Object, Object> map) { map.forEach((key,value) -> { System.out.println("key:" + key + ",vaule:" + value); }); }
第八種,通過Lambda遍歷HashMap.entrySet()得到鍵值對集合得到key和value
private static void eighth(Map<Object, Object> map) { map.entrySet().forEach(item -> { System.out.println("key:" + item.getKey() + ",vaule:" + item.getValue()); }); }
第九種,通過Lambda遍歷HashMap.keySet()得到key集合得到key和value
private static void ninth(Map<Object, Object> map) { map.keySet().forEach(item -> { System.out.println("key:" + item + ",vaule:" + map.get(item)); }); }
以上遍歷主要Iterator遍歷集合方式、for循環(huán)遍歷集合方式,Lambda遍歷集合方式,根據(jù)具體需求選用不同的方式,通過Iterator方式循環(huán)刪除數(shù)據(jù)是安全的,for方式循環(huán)刪除數(shù)據(jù)非安全,Lambda方式循環(huán)刪除數(shù)據(jù)非安全,通過Iterator方式的效率也很高。
到此這篇關(guān)于Java中hashMap遍歷的9種方式的文章就介紹到這了,更多相關(guān)Java hashMap遍歷內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java大數(shù)據(jù)開發(fā)Hadoop?MapReduce
MapReduce的思想核心是“分而治之”,適用于大量復(fù)雜的任務(wù)處理場景(大規(guī)模數(shù)據(jù)處理場景)Map負(fù)責(zé)“分”,即把復(fù)雜的任務(wù)分解為若干個“簡單的任務(wù)”來并行處理。可以進(jìn)行拆分的前提是這些小任務(wù)可以并行計算,彼此間幾乎沒有依賴關(guān)系2023-03-03SpringBoot創(chuàng)建自定義starter詳解
這篇文章主要介紹了SpringBoot創(chuàng)建自定義starter詳解,Starter是Spring Boot中的一個非常重要的概念,Starter相當(dāng)于模塊,它能將模塊所需的依賴整合起來并對模塊內(nèi)的Bean根據(jù)環(huán)境(條件)進(jìn)行自動配置,需要的朋友可以參考下2024-01-01Spring Cloud Data Flow初體驗(yàn)以Local模式運(yùn)行
這篇文章主要介紹了Spring Cloud Data Flow初體驗(yàn)以Local模式運(yùn)行,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-08-08單例模式垃圾回收_動力節(jié)點(diǎn)Java學(xué)院整理
這篇文章主要為大家詳細(xì)介紹了單例模式垃圾回收的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-08-08解決JAVA遍歷List集合,刪除數(shù)據(jù)時出現(xiàn)的問題
這篇文章主要介紹了解決JAVA遍歷List集合時,刪除數(shù)據(jù)出現(xiàn)的問題,文中講解非常細(xì)致,幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下2020-07-07SpringBoot項目使用slf4j的MDC日志打點(diǎn)功能(最新推薦)
這篇文章主要介紹了SpringBoot項目使用slf4j的MDC日志打點(diǎn)功能,本文通過示例代碼給大家介紹非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-06-06