Day 1194:Java Stream(2)

Stream API可以表达复杂的数据处理和查询

filter、distinct、takeWhile、dropWhile、skip和limit可用来过滤和切分stream

如果源是有序的,takeWhile和dropWhile会比filter效率更高

可以用map、flatMap将stream中的元素提取或者转换

findFirst和findAny可用来查找元素。allMatch、noneMatch和anyMatch可根据断言来匹配

一些方法支持短路:一旦找到一个结果计算就停止的,以及没有必要处理整个stream的

可以用reduce来便利stream中的所有元素并产生一个结果。比如计算总数或者最大值

一些方法如filter、map是无状态的,即在这些方法内部不存储状态。reduce等方法存储状态用来计算值。另外,sorted、distinct因为需要在返回新stream前缓存所有元素,所以也是要保存状态。这些操作称之为状态操作

你可能感兴趣的:(Day 1194:Java Stream(2))