gpt4 book ai didi

java - 如何跳出Java 8 Iterator.forEachRemaining循环里面的方法?

转载 作者:搜寻专家 更新时间:2023-10-31 08:13:12 25 4
gpt4 key购买 nike

简化代码如下。我预计迭代内的 return 会导致跳出该方法。相反,代码执行下一次迭代,然后在方法内迭代后打印

public static void callIter() {
List<String> names = new ArrayList<>();
names.add("A");
names.add("B");
names.add("C");
ListIterator<String> nameIterator = names.listIterator();
nameIterator.forEachRemaining(name -> {
if (name.equals("B")) {
System.out.println("Found");
return;
}
System.out.println(name);
});
System.out.println("AfterIter");
}

最佳答案

return 完成为迭代器的每个(剩余)元素执行的代码的执行。它不会停止迭代/forEachRemaining 的执行。这与您描述的行为相符。

Javadoc for forEachRemaining状态:

Performs the given action for each remaining element until all elements have been processed or the action throws an exception. Actions are performed in the order of iteration, if that order is specified. Exceptions thrown by the action are relayed to the caller.

换句话说,如果您不想为此滥用异常,如果您打算在处理最后一个元素之前停止迭代,则不应使用 forEachRemaining

关于java - 如何跳出Java 8 Iterator.forEachRemaining循环里面的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48117070/

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