有时,在处理流的步骤之间对流中的每个元素进行"某事"(例如打印)将是方便的,例如用于调试.
一个简单的例子可能看起来像这样,遗憾的是这不会forEach消耗流:
List<String> list = new ArrayList<>();
list.add("one");
list.add("two");
list.add("three");
list.add("four");
List<String> filteredList =
list.stream()
.filter(s -> s.startsWith("t"))
.forEach(System.out::println)
.collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)
怎么能实现这一目标?