像 filter 这样只描述 Stream,最终不产生新集合的方法叫作惰性求值方法(lazy);而像 count 这样 最终会从 Stream 产生值的方法叫作及早求值方法(eager)。...收集器是生成最终结果的一剂配方,下游收集器则是生成部分结果的配 方,主收集器中会用到下游收集器。这种组合使用收集器的方式,使得它们在 Stream 类库 中的作用更加强大。...日志和打印消息
假设你要在集合上进行大量操作,你要调试代码,你希望看到每一步操作的结果是什么。
可以在每一步打印出集合中的值,这在流中很难做到,因为一些中间步骤是惰性求值的。...如果有一个整体上大概相似的模式,只是行为上有所不同,就可以试着加入一个 Lambda 表达式。
Lambda表达式的单元测试
单元测试是测试一段代码的行为是否符合预期的方式。...使用流时,调试可能会变得更加复杂,
因为迭代已交由类库控制,而且很多流操作是惰性求值的。
日志和打印消息
假设你要在集合上进行大量操作,你要调试代码,你希望看到每一步操作的结果是什么。