7.6 解决方案:peak
遗憾的是,流有一个方法让你能查看每个值,同时能继续操作流。这就是peek方法。例7-18使用peek方法重写了前面的例子,输出流中的值,同时避免了重复的流操作。
例7-18 使用peek方法记录中间值
Set<String> nationalities= album.getMusicians().filter(artist -> artist.getName().startsWith("The")).map(artist -> artist.getNationality()).peek(nation -> System.out.println("Found nationality: " + nation)).collect(Collectors.<String>toSet());
使用peek方法还能以同样的方式,将输出定向到现有的日志系统中,比如log4j、java.util.logging或者slf4j。
