Java8 forEach
这几天学了下java8的新特性,java8最显著的改变之一就是加入lambda表达式,这个以后再说。
定义少量的数据 对少量的数据进行遍历
Map<String,Integer> map = new HashMap<>(16);map.put("a",10);map.put("b",20);map.put("c",30);map.put("d",40);map.put("e",50);
//通常方法1 foreach entrySet遍历 entry是map里面定义的一个接口for (Map.Entry<String,Integer> entry:map.entrySet()){}
//通常方法2 Iterator接口遍历Iterator<Map.Entry<String, Integer>> iterator = map.entrySet().iterator();while (iterator.hasNext()){ Map.Entry<String,Integer> entry = iterator.next();}
//通常方法3 遍历keySet 通过key 取值for (String key : map.keySet()){ Integer value = map.get(key);}
//java8 foreach+lambda表达式遍历map.forEach((k,v)-> { }); 通过两个nanoTime相减 再除以1000 获得各个方式的遍历时间
forEach遍历时间:50
iterator遍历时间:5
遍历key再取值 遍历时间:230
java8 forEach遍历时间:84222
其中 iterator时间是最短的,forEach 实际上就是iterator的语意简化版 比iterator长一点,而遍历key再取值,相较于直接获得entry多了从hashmap 取出key所对应的value值,
而java8 forEach比其他两个方式耗时长了很多,所以如果系统的性能需求比较高的话,对集合循环的遍历,慎用forEach。
转载于:https://www.cnblogs.com/nost/p/7749474.html
Java8 forEach相关推荐
- Java8 forEach 使用
Java8 forEach 使用 引言 在本文中,我们将向您展示如何使用新的 java 8 foreach 语句循环 List 和 Map. forEach and Map 普通方式遍历 Map Ma ...
- java8foreach 返回值,Java8 forEach
Java8 forEach Java forEach 是一种实用程序方法,用于迭代集合(如列表.集或映射)和流,并针对其的每个元素执行特定操作. 1. Java 8 forEach方法 1.1 Ite ...
- java8 foreach 伟参_【java8】为java8的foreach正名
首先为自己没有经过严格测试得出的错误结论感到抱歉,原博文,测试完感觉自己发现了一个新bug,后来思前想后觉得不应该是这样的,如果效率差的这么多,jdk的开发人员会不去优化它吗,但是怎么重复测试任然得到 ...
- java8 foreach 异常_错误处理 – 在java 8流foreach中抛出异常
我正在使用 java 8流,我不能在流的foreach中抛出异常. stream.forEach(m -> { try { if (isInitial) { isInitial = false; ...
- java8 foreach 抛异常_Java Stream中的异常处理
Exception Stream API和lambda是Java自版本8以来很大的一个特性.从那个时候开始,我们可以更多地使用函数式的语法.现在,在使用了这些语言特性一段时间之后,我们经常面临的一个问 ...
- java8 list 行转列_Java14 都来了,你还不会用 Java8吗?
Java 8 于2014年3月18日发布,并且成为主流的 Java,如今,虽然 Java 14 都已经发布了,但是 开发者和公司选择的版本依旧是经久不衰的 Java 8 版本,如果你还不了解这些新特性 ...
- Java 8 forEach使用
Java8 ForEach 本片文章将展示怎么用java8的forEach语法循环一个list或者map. forEach 和Map 通常的方式循环map Map<String, Integer ...
- java组合与继承始示例_Java 8特性与示例
java组合与继承始示例 Java 8 was released on 18th March 2014, so it's high time to look into Java 8 Features. ...
- 怎么break java8 stream的foreach
文章目录 简介 使用Spliterator 自定义forEach方法 总结 怎么break java8 stream的foreach 简介 我们通常需要在java stream中遍历处理里面的数据,其 ...
最新文章
- 行业观察 | 机器人Ameca挣脱「灵魂」枷锁觉醒?
- 记住一个道理:只要自己变优秀了,其他的事情才会跟着好起来。
- python多线程处理文件_python多线程分块读取文件
- Java API —— Map接口
- Teams的Incoming Webhook
- 在建工地扬尘在线监控系统推荐_vocs在线监控系统安装的法规依据
- 3d点击_3D打印服务加工在医疗器械行业的应用
- 浮点数在计算机中起什么作用,浮点数在计算机中的存储表示
- 隐私与机器学习,二者可以兼得吗?
- ug不能自动启动服务器,没有足够的权限启动系统服务解决方法
- cv mat的shape_将ndarray转换为cv::Mat的最简单方法是什么?
- PowerShell抓取电脑序列号
- matlab powergui在哪儿,powergui模块在哪
- 厦门理工学院1219 (zyf的童年) (纯C语言版本)
- 让迁移不再开盲盒,让云也能省钱丨Hackathon 项目背后的故事第一期回顾
- 前端必备:六款CSS工具让代码充满魅力
- Mac 2020版M1 安装虚拟机各种踩坑详解(关注文末小惊喜哟)
- The Black Tux | IT桔子
- Python|简易银行ATM程序制作
- filecoin benchmarks v25 GeForce GTX 1080 Ti
热门文章
- 基类成员的public访问权限在派生类中变为_C++ 派生类的构造函数(学习笔记:第7章 06)...
- java使用strlen_java – “strlen(s1) – strlen(s2)”永远不会小于零
- 分布式,微信小程序 服务器保持登入态解决方案,
- 网站SEO优化中该如何解决网站改版问题?
- 浅析新站SEO和老站优化推广有哪些区别?
- java cache缓存_涨姿势:为什么Java中“1000==1000”为false,而”100==100“为true?
- 钉钉获取免登授权码 php_php代码如何加域名授权?开源php项目如何保护版权 商业授权?...
- h3c wa4320配置上网_企业路由不为人知的功能:自动吸粉、上网监控、多宽带合并...
- python中几种读取文件的方法_python 逐行读取文件的几种方法
- macOS 的头文件隐藏这么深