【发布时间】:2016-10-28 00:32:31
【问题描述】:
我的问题涉及 Java 5 中引入的 Java foreach 循环和 Java 8 中引入的 Iterable.forEach()。
假设存在一个带有字符串值列表的程序,该程序的功能是遍历每个单独的字符串并将其用作方法参数。
这样的程序在 Java 5 中可能看起来像这样:
for (String s : stringList) {
doSomething(s);
}
但是,随着 Java 8 中 Iterable.forEach() 的引入,这样的程序可能如下所示:
stringList.forEach(this::doSomething);
我的问题是,除了保存几行代码之外,还有什么理由使用Iterable.forEach() 而不是 foreach 循环?
【问题讨论】:
-
如果
doSomething抛出一个检查异常,那么你必须明确地捕捉它... -
@Tunaki 可能不太清楚,但我的意思是说 doSomething 是一种安全的方法,不会抛出异常。
-
如果您使用并行流,它会产生更大的影响。
标签: java foreach iterator java-8