当前位置:嗨网首页>书籍在线阅读

18-结果分析

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

结果分析

本案例中的 peek() 方法分别在两种不同场景下统计流中的元素个数,并输出相关信息到控制台中。

在第6章中已经提到, Stream 包含一个源、0个或者多个中间操作,以及一个结束操作。第一个案例的结束操作是 count() 方法,由于该方法不需要通过处理元素集来计算返回值,因此 peek() 方法将永远不会执行。因此在控制台中也不会看到由 peek() 方法输出的任何信息,而 counter 变量的返回值也将是0。

第二个案例有所不同。它的结束操作是 forEach() 方法,在这种情况下,流中的所有元素都会被处理,因此将在控制台中看到来自 peek() 方法和 forEach() 方法的消息,而 counter 变量的最终结果是1000。

peek() 方法是流的中间操作,像其他中间操作一样,它们都是“懒执行”的,只处理必要的元素。因此第一个案例的中间操作没有执行也就非常好理解了。