gpt4 book ai didi

java - 用 Iterable.forEach 替换 foreach 循环纯粹是为了美观吗?

转载 作者:行者123 更新时间:2023-12-02 06:22:06 24 4
gpt4 key购买 nike

我的问题涉及 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 循环?

最佳答案

提供forEach使得要在元素上执行的操作可插入并且非常灵活。它可以是直接 lambda、MethodHandle 甚至是由行为的静态部分和运行时定义的部分动态组成的 MethodHanlde。在内部,可以避免创建显式的 Iterator 对象。否则,您当然可以通过外部循环模拟相同的行为。但这可能看起来不太好。

关于java - 用 Iterable.forEach 替换 foreach 循环纯粹是为了美观吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38029479/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com