这几天学了下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相关推荐

  1. Java8 forEach 使用

    Java8 forEach 使用 引言 在本文中,我们将向您展示如何使用新的 java 8 foreach 语句循环 List 和 Map. forEach and Map 普通方式遍历 Map Ma ...

  2. java8foreach 返回值,Java8 forEach

    Java8 forEach Java forEach 是一种实用程序方法,用于迭代集合(如列表.集或映射)和流,并针对其的每个元素执行特定操作. 1. Java 8 forEach方法 1.1 Ite ...

  3. java8 foreach 伟参_【java8】为java8的foreach正名

    首先为自己没有经过严格测试得出的错误结论感到抱歉,原博文,测试完感觉自己发现了一个新bug,后来思前想后觉得不应该是这样的,如果效率差的这么多,jdk的开发人员会不去优化它吗,但是怎么重复测试任然得到 ...

  4. java8 foreach 异常_错误处理 – 在java 8流foreach中抛出异常

    我正在使用 java 8流,我不能在流的foreach中抛出异常. stream.forEach(m -> { try { if (isInitial) { isInitial = false; ...

  5. java8 foreach 抛异常_Java Stream中的异常处理

    Exception Stream API和lambda是Java自版本8以来很大的一个特性.从那个时候开始,我们可以更多地使用函数式的语法.现在,在使用了这些语言特性一段时间之后,我们经常面临的一个问 ...

  6. java8 list 行转列_Java14 都来了,你还不会用 Java8吗?

    Java 8 于2014年3月18日发布,并且成为主流的 Java,如今,虽然 Java 14 都已经发布了,但是 开发者和公司选择的版本依旧是经久不衰的 Java 8 版本,如果你还不了解这些新特性 ...

  7. Java 8 forEach使用

    Java8 ForEach 本片文章将展示怎么用java8的forEach语法循环一个list或者map. forEach 和Map 通常的方式循环map Map<String, Integer ...

  8. java组合与继承始示例_Java 8特性与示例

    java组合与继承始示例 Java 8 was released on 18th March 2014, so it's high time to look into Java 8 Features. ...

  9. 怎么break java8 stream的foreach

    文章目录 简介 使用Spliterator 自定义forEach方法 总结 怎么break java8 stream的foreach 简介 我们通常需要在java stream中遍历处理里面的数据,其 ...

最新文章

  1. 行业观察 | 机器人Ameca挣脱「灵魂」枷锁觉醒?
  2. 记住一个道理:只要自己变优秀了,其他的事情才会跟着好起来。
  3. python多线程处理文件_python多线程分块读取文件
  4. Java API —— Map接口
  5. Teams的Incoming Webhook
  6. 在建工地扬尘在线监控系统推荐_vocs在线监控系统安装的法规依据
  7. 3d点击_3D打印服务加工在医疗器械行业的应用
  8. 浮点数在计算机中起什么作用,浮点数在计算机中的存储表示
  9. 隐私与机器学习,二者可以兼得吗?
  10. ug不能自动启动服务器,没有足够的权限启动系统服务解决方法
  11. cv mat的shape_将ndarray转换为cv::Mat的最简单方法是什么?
  12. PowerShell抓取电脑序列号
  13. matlab powergui在哪儿,powergui模块在哪
  14. 厦门理工学院1219 (zyf的童年) (纯C语言版本)
  15. 让迁移不再开盲盒,让云也能省钱丨Hackathon 项目背后的故事第一期回顾
  16. 前端必备:六款CSS工具让代码充满魅力
  17. Mac 2020版M1 安装虚拟机各种踩坑详解(关注文末小惊喜哟)
  18. The Black Tux | IT桔子
  19. Python|简易银行ATM程序制作
  20. filecoin benchmarks v25 GeForce GTX 1080 Ti

热门文章

  1. 基类成员的public访问权限在派生类中变为_C++ 派生类的构造函数(学习笔记:第7章 06)...
  2. java使用strlen_java – “strlen(s1) – strlen(s2)”永远不会小于零
  3. 分布式,微信小程序 服务器保持登入态解决方案,
  4. 网站SEO优化中该如何解决网站改版问题?
  5. 浅析新站SEO和老站优化推广有哪些区别?
  6. java cache缓存_涨姿势:为什么Java中“1000==1000”为false,而”100==100“为true?
  7. 钉钉获取免登授权码 php_php代码如何加域名授权?开源php项目如何保护版权 商业授权?...
  8. h3c wa4320配置上网_企业路由不为人知的功能:自动吸粉、上网监控、多宽带合并...
  9. python中几种读取文件的方法_python 逐行读取文件的几种方法
  10. macOS 的头文件隐藏这么深