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

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

Java 8是Java的一个重大版本,有人认为,虽然这些新特性领Java开发人员十分期待,但同时也需要花不少精力去学习。在这一小节中,我们将介绍Java 8的大部分新特性。

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

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

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

假设您有以下列表:

List 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测试,看看哪种方式表现更好。

相关创意

浅谈一下学Java和python哪个好(个人观点)「建议收藏」
365在线体育app下载

浅谈一下学Java和python哪个好(个人观点)「建议收藏」

📅 07-01 👁️ 6547
lol抽奖活动主题全策略网址、专区和集合锦集 lol抽奖打折活动
淘宝会员中心怎么签到?如何玩?
365在线体育app下载

淘宝会员中心怎么签到?如何玩?

📅 07-03 👁️ 9001
多币种信用卡哪个好? 工行/招行/农行/中行/建行信用卡比较
App 推广 - 11 种推广和优化的病毒式营销方法
365bet手机网址多少

App 推广 - 11 种推广和优化的病毒式营销方法

📅 06-30 👁️ 7443
3 种方法:如何在 Windows 7 上加密和锁定文件或文件夹
365在线体育app下载

3 种方法:如何在 Windows 7 上加密和锁定文件或文件夹

📅 07-02 👁️ 6113
苹果怎么开网速显示
365在线体育app下载

苹果怎么开网速显示

📅 06-30 👁️ 1003
公孙离究竟是什么种族她的身份背景与种族之谜解析
365在线体育app下载

公孙离究竟是什么种族她的身份背景与种族之谜解析

📅 07-01 👁️ 743