我只是在重构一些旧项目以使用Java 8的功能。
int counter = 1;
for (Checker checker : checkers) {
if (counter < checkers.size()) {
checker.setNextChecker(checkers.get(counter++));
}
}
这有点连锁反应模式。我需要为列表中的每个检查器设置下一个检查器,最后一个检查器除外。
仍然在这里找不到使用Stream API的方法:)
最佳答案
使用IntStream.range
:
IntStream.range(1, checkers.size())
.forEach(i -> checkers.get(i-1).setNextChecker(checkers.get(i)));
或使用for循环:
for (int i = 1; i < checkers.size(); i++)
checkers.get(i-1).setNextChecker(checkers.get(i));
关于java - 用lambda表达式替换for-each循环,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50006972/