Java8新特性->stream流式处理
stream
特点
- 不改变原来的数据源,会将操作后的数据保留到另一个对象中
- 惰性求值,流在中间处理过程中,只是对操作进行记录,而不会立即执行
常用方法
创建流
- stream() 获取一个顺序流
- parallelStream() 获取一个并行流
中间操作
筛选与切片
-
filter 过滤流中的某些元素 limit 获取n个元素 skip 跳过n元素,配合limit 可实现分页 distinct 通过流元素的hashCode跟equals去重元素
映射
-
map 接收一个函数作为参数,将每个元素映射为一个新的元素 flatmap 接收一个函数作为参数<具体用法之后填> peek 跟map很像,只是方法没有返回值,为Consumer表达式
排序
-
sorted 自然排序,流元素得实现Comparable接口 sorted(Comparator): 定制排序
匹配与聚合
-
allMatch 接收一个Predicate函数,当流中每个元素都符合该断言才返回true noneMatch 当流中每个元素都不符合该断言时才返回true anyMatch 当流中有一个满足该断言则返回true findFirst 返回流第一个元素 findAny 返回流中任意元素 count 返回流中元素的总个数 max 返回流中元素最大值 min 返回流中元素最小值
收集操作
-
collect 接收一个Collector实例,将流中元素收集成另一个数据结构
下一篇:
CAP理论,浅谈我的理解