Java中HashMap集合的6种遍历方式详解
更新时间:2023年12月11日 09:42:27 作者:warybee
这篇文章主要介绍了Java中HashMap集合的6种遍历方式详解,HashMap 基于哈希表的 Map 接口实现,是以 key-value 存储形式存在,即主要用来存放键值对,HashMap 的实现不是同步的,这意味着它不是线程安全的,我们来看一下其遍历方式,需要的朋友可以参考下
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表达式
@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()); }); }
到此这篇关于Java中HashMap集合的6种遍历方式详解的文章就介绍到这了,更多相关HashMap的6种遍历方式内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
springboot执行延时任务之DelayQueue的使用详解
DelayQueue是一个无界阻塞队列,只有在延迟期满时,才能从中提取元素。这篇文章主要介绍了springboot执行延时任务-DelayQueue的使用,需要的朋友可以参考下2019-12-12spring boot整合CAS Client实现单点登陆验证的示例
本篇文章主要介绍了spring boot整合CAS Client实现单点登陆验证的示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧2018-01-01SpringCloud项目的log4j2漏洞解决方案详解流程
很多小伙伴因为Log4j2的惊爆0Day漏洞一时束手无策,这里提供最终解决方案可以进行一个版本号的升级,感兴趣的朋友来看看吧2022-04-04springcloud检索中间件 ElasticSearch 分布式场景的使用
单机的elasticsearch做数据存储,必然面临两个问题:海量数据存储问题、单点故障问题,本文重点给大家介绍springcloud检索中间件 ElasticSearch 分布式场景的运用,感兴趣的朋友跟随小编一起看看吧2023-10-10
最新评论