import java.util.Arrays;
import java.util.List;
public class StreamExample {
public static void main(String[] args) {
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
numbers.stream()
.peek(System.out::println)
.map(n -> n * 2)
.forEach(System.out::println);
}
}
- peek方法与map方法执行先后顺序:
- 在Stream流操作中,
peek
方法和map
方法按照它们在流操作链中出现的顺序执行。即先执行peek
方法,再执行map
方法。
- peek方法对后续map操作的影响:
peek
方法主要用于调试和观察流中的元素,它不会改变流中元素本身。它只是在流元素经过该操作时,对元素进行一些额外的操作(如打印),但不会影响后续map
操作对元素的处理逻辑。map
方法会根据传入的函数对每个元素进行转换,peek
方法的操作不会干扰map
方法的转换逻辑,只是在map
方法执行之前,可以让开发者查看流中的元素状态。