用lambda表达式替换for-each循环 [英] Replace for-each loop with lambda expression
本文介绍了用lambda表达式替换for-each循环的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我只是重构一些旧项目以使用Java 8的功能.
I'm just refactoring some of my old projects to use features of Java 8.
int counter = 1;
for (Checker checker : checkers) {
if (counter < checkers.size()) {
checker.setNextChecker(checkers.get(counter++));
}
}
这有点像Resp连锁模式.而且我需要为列表中的每个检查器设置下一个检查器,最后一个检查器除外.
Here's kinda Chain of Resp pattern. And I need to set next checker for every checker in the list, excluding the last one.
在这里仍然找不到使用Stream API的方法:)
Still can't find the way to use Stream API here :)
推荐答案
使用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));
这篇关于用lambda表达式替换for-each循环的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文