Java中HashMap集合的6種遍歷方式詳解
更新時間:2023年12月11日 09:42:27 作者:warybee
這篇文章主要介紹了Java中HashMap集合的6種遍歷方式詳解,HashMap?基于哈希表的?Map?接口實現(xiàn),是以?key-value?存儲形式存在,即主要用來存放鍵值對,HashMap?的實現(xiàn)不是同步的,這意味著它不是線程安全的,我們來看一下其遍歷方式,需要的朋友可以參考下
HashMap的6種遍歷方式
1 Foreach entrySet方式
@Test public void test1(){ HashMap<Integer,String> languages=new HashMap<>(); languages.put(1,"java"); languages.put(2,"C#"); languages.put(3,"javascript"); languages.put(4,"C"); languages.put(5,"C++"); for (Map.Entry<Integer,String> entry:languages.entrySet()) { log.info("key:"+entry.getKey()); log.info("value:"+entry.getValue()); } }
2 Foreach keySet方式
@Test public void test2(){ HashMap<Integer,String> languages=new HashMap<>(); languages.put(1,"java"); languages.put(2,"C#"); languages.put(3,"javascript"); languages.put(4,"C"); languages.put(5,"C++"); for (Integer key:languages.keySet()) { log.info("key:"+key); log.info("value:"+languages.get(key)); } }
3 Iterator EntrySet方式
@Test public void test3(){ HashMap<Integer,String> languages=new HashMap<>(); languages.put(1,"java"); languages.put(2,"C#"); languages.put(3,"javascript"); languages.put(4,"C"); languages.put(5,"C++"); Iterator<Map.Entry<Integer, String>> iterator = languages.entrySet().iterator(); while (iterator.hasNext()){ Map.Entry<Integer, String> next = iterator.next(); log.info("key:"+next.getKey()); log.info("value:"+next.getValue()); } }
4 Iterator KeySet方式
@Test public void test4(){ HashMap<Integer,String> languages=new HashMap<>(); languages.put(1,"java"); languages.put(2,"C#"); languages.put(3,"javascript"); languages.put(4,"C"); languages.put(5,"C++"); Iterator<Integer> iterator = languages.keySet().iterator(); while (iterator.hasNext()){ log.info("key:"+iterator.next()); log.info("value:"+languages.get(iterator.next())); } }
5 Lambda表達(dá)式
@Test public void test5(){ HashMap<Integer,String> languages=new HashMap<>(); languages.put(1,"java"); languages.put(2,"C#"); languages.put(3,"javascript"); languages.put(4,"C"); languages.put(5,"C++"); languages.forEach((k,v)->{ log.info("key:"+k); log.info("value:"+v); }); }
6 Stream API方式
Stream API 單線程
@Test public void test6(){ HashMap<Integer,String> languages=new HashMap<>(); languages.put(1,"java"); languages.put(2,"C#"); languages.put(3,"javascript"); languages.put(4,"C"); languages.put(5,"C++"); languages.entrySet().stream().forEach(entry->{ log.info("key:"+entry.getKey()); log.info("value:"+entry.getValue()); }); }
Stream API 多線程
@Test public void test7(){ HashMap<Integer,String> languages=new HashMap<>(); languages.put(1,"java"); languages.put(2,"C#"); languages.put(3,"javascript"); languages.put(4,"C"); languages.put(5,"C++"); languages.entrySet().parallelStream().forEach(entry->{ log.info("key:"+entry.getKey()); log.info("value:"+entry.getValue()); }); }
到此這篇關(guān)于Java中HashMap集合的6種遍歷方式詳解的文章就介紹到這了,更多相關(guān)HashMap的6種遍歷方式內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Spring?Boot實現(xiàn)配置文件的自動加載和刷新功能
這篇文章我們介紹了Spring?Boot如何實現(xiàn)配置文件的自動加載和刷新,本文結(jié)合實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧2023-05-05java?JIT調(diào)優(yōu)的實現(xiàn)
JIT編譯器調(diào)優(yōu)方法包括啟用JIT日志、優(yōu)化熱點代碼、循環(huán)展開、內(nèi)聯(lián)優(yōu)化、逃逸分析以及使用性能分析工具等,本文主要介紹了java?JIT調(diào)優(yōu)的實現(xiàn),感興趣的可以了解一下2025-02-02Spring向頁面?zhèn)髦岛徒邮茼撁鎮(zhèn)鬟^來的參數(shù)詳解
這篇文章主要給大家介紹了關(guān)于Spring向頁面?zhèn)髦岛徒邮茼撁鎮(zhèn)鬟^來的參數(shù)的相關(guān)資料,文中介紹的非常詳細(xì),對大家具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起看看吧。2017-06-06