Replace for-each loop with lambda expression
问题 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++)); } } Here's kinda Chain of Resp pattern. And I need to set next checker for every checker in the list, excluding the last one. Still can't find the way to use Stream API here :) 回答1: Using IntStream.range : IntStream.range(1, checkers.size()) .forEach(i -> checkers.get(i-1).setNextChecker