前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java 8中增强For循环与forEach()方法学习

Java 8中增强For循环与forEach()方法学习

作者头像
用户1289394
发布2019-05-09 18:20:49
1.1K0
发布2019-05-09 18:20:49
举报
文章被收录于专栏:Java学习网Java学习网

Java 8是https://ask.qcloudimg.com/http-save/yehe-1289394/zr4ip2dir2.jpegJava的一个重大版本,有人认为,虽然这些新特性领Java开发人员十分期待,但同时也需要花不少精力去学习。在这一小节中,我们将介绍Java 8的大部分新特性。

Lambda表达式(也称为闭包)是Java 8中最大和最令人期待的语言改变。它允许我们将函数当成参数传递给某个方法,或者把代码本身当作数据处理:函数式开发者非常熟悉这些概念。

很多JVM平台上的语言(Groovy、Scala等)从诞生之日就支持Lambda表达式,但是Java开发者没有选择,只能使用匿名内部类代替Lambda表达式。

Lambda的设计耗费了很多时间和很大的社区力量,最终找到一种折中的实现方案,可以实现简洁而紧凑的语言结构。

假设您有以下列表:

List<String> list = Arrays.asList("a", "b", "c", "d", "e", "f");

如果你想通过使用集合中的每个元素来做某事,有两种方法:

1)

list.forEach(s -> System.out.println(s));

2)

for(String s: list){

System.out.println(s);

}

以上两种方式都按顺序打印元素:

a

b

c

d

e

f

在这种特殊情况下,使用lambda表达式并不比使用增强型for循环更好。

使用forEach()方法的主要优点是在并行流上调用它时,在这种情况下,我们不需要编写代码来并行执行。

以下代码将并行执行:

list.parallelStream().forEach(s -> System.out.println(s));

输出可能是:

d

f

a

b

c

e

因此,只要并行执行可能会提高程序的性能,就应该将forEach()方法视为一个不错的选择。您可以随时为您的程序进行A / B测试,看看哪种方式表现更好。

var first_sceen__time = (+new Date());if ("" == 1 && document.getElementById('js_content')) { document.getElementById('js_content').addEventListener("selectstart",function(e){ e.preventDefault(); }); } (function(){ if (navigator.userAgent.indexOf("WindowsWechat") != -1){ var link = document.createElement('link'); var head = document.getElementsByTagName('head')[0]; link.rel = 'stylesheet'; link.type = 'text/css'; link.href = "//res.wx.qq.com/mmbizwap/zh_CN/htmledition/style/page/appmsg_new/winwx4516f8.css"; head.appendChild(link); } })();

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-01-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Java学习网 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档