Java中遍歷ConcurrentHashMap的四種方式詳解
這篇文章主要介紹了Java中遍歷ConcurrentHashMap的四種方式詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
方式一:在for-each循環(huán)中使用entries來(lái)遍歷
System.out.println("方式一:在for-each循環(huán)中使用entries來(lái)遍歷");
for (Map.Entry<String, String> entry: map.entrySet()) {
System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue());
}
方法二:在for-each循環(huán)中遍歷keys或values,這種方式適用于需要值或者鍵的情況,方法二比方法一快了10%
System.out.println("方法二:在for-each循環(huán)中遍歷keys或values,這種方式適用于需要值或者鍵的情況");
//遍歷鍵
for (String key : map.keySet()) {
System.out.println("key = " + key);
}
//遍歷值
for (String value : map.values()) {
System.out.println("value = " + value);
}
方法三:使用Iterator遍歷,使用并發(fā)集合不會(huì)報(bào)異常,性能類似于方法二
//使用泛型
Iterator<Map.Entry<String, String>> entries = map.entrySet().iterator();
System.out.println("使用Iterator遍歷,并且使用泛型:");
while (entries.hasNext()) {
Map.Entry<String, String> entry = entries.next();
System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue());
//注意這里操作了集合,下面的的遍歷不會(huì)再打印0
if("0".equals(entry.getKey())) {
map.remove(entry.getKey());
}
}
//不使用泛型
Iterator entrys = map.entrySet().iterator();
System.out.println("使用Iterator遍歷,并且不使用泛型");
while (entrys.hasNext()) {
Map.Entry entry = (Map.Entry) entrys.next();
String key = (String)entry.getKey();
String value = (String)entry.getValue();
System.out.println("Key = " + key + ", Value = " + value);
}
方式四:通過(guò)鍵找值遍歷,該方法效率相當(dāng)?shù)?不建議使用
System.out.println("方式四:通過(guò)鍵找值遍歷");
for (String key : map.keySet()) {
String value = map.get(key);
System.out.println("Key = " + key + ", Value = " + value);
}
}
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
淺談Storm在zookeeper上的目錄結(jié)構(gòu)
這篇文章主要介紹了淺談Storm在zookeeper上的目錄結(jié)構(gòu)的相關(guān)內(nèi)容,涉及storm使用zookeeper的操作以及詳細(xì)結(jié)構(gòu)圖,具有一定參考價(jià)值,需要的朋友可以了解下。2017-10-10
ImportBeanDefinitionRegistrar手動(dòng)控制BeanDefinition創(chuàng)建注冊(cè)詳解
這篇文章主要為大家介紹了ImportBeanDefinitionRegistrar手動(dòng)控制BeanDefinition創(chuàng)建注冊(cè)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-12-12
Spring Boot實(shí)現(xiàn)郵件服務(wù)(附:常見(jiàn)郵箱的配置)
這篇文章主要給大家介紹了關(guān)于Spring Boot實(shí)現(xiàn)郵件服務(wù)的相關(guān)資料,文中還附上了常見(jiàn)郵箱的配置,通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2018-12-12
Java實(shí)戰(zhàn)個(gè)人博客系統(tǒng)的實(shí)現(xiàn)流程
讀萬(wàn)卷書不如行萬(wàn)里路,只學(xué)書上的理論是遠(yuǎn)遠(yuǎn)不夠的,只有在實(shí)戰(zhàn)中才能獲得能力的提升,本篇文章手把手帶你用java+springboot+mybatis+redis+vue+elementui+Mysql實(shí)現(xiàn)一個(gè)個(gè)人博客系統(tǒng),大家可以在過(guò)程中查缺補(bǔ)漏,提升水平2022-01-01

