前言:
stream是jdk8以后新增的API,熟练操作后会非常实用。打好基础,daydayup!!
Stream
Stream也称为Stream流,用于操作集合或者数组的数据。Stream流大量的结合了Lambda的语法风格,使代码更简洁,可读性更好
Stream的使用
Stream的使用有三个步骤:1,获取Stream流,与数据源建立连接;2,用各种流水线的中间方法对数据进行处理,计算;3,使用终结方法获取处理的结果,并收集到新集合中返回
1,获取Stream流
集合获取Stream流需要使用stream方法,数组获取Stream流可以使用stream方法,也可以使用stream的of方法
例:
2,Stream流的中间方法
Stream提供的常见中间方法 | 说明 |
Stream<T> filter(Predicate<?super T> predicate) | 用于对流中的数据进行过滤 |
Stream<T> sorted() | 对元素进行升序排序 |
Stream<T> sorted(Comparator<? super T>comparator) | 按照指定规则排序 |
Stream<T> limit(long maxSize) | 获取前几个元素 |
Stream<T>skip(long n) | 跳过前几个元素 |
Stream<T> distinct() | 去除流中重复的元素 |
<R> Stream<R> map(Function<? super T ,? extends R > mapper) | 对元素进行加工,并返回对应的新流 |
static <T> Stream<T> concat(Stream a ,Stream b) | 合并a和b两个流成为新流 |
例:
3,Stream流的终结方法
Stream流的终结方法 | 说明 |
void forEach(Consumer action) | 对此流运算后的元素执行遍历 |
long count() | 统计此流运算后的元素个数 |
Optional<T> max(Comparator<? super T>comparator) | 获取此流运算后的最大值元素 |
Optional<T> min(Comparator<? super T>comparator) | 获取此流运算后的最小值元素 |
例:
Stream流的收集
Stream流只是处理合集,但如果需要把处理后的数据添加到其他集合里,那么还需要其他的方法来解决
方法1:collect方法(返回合集)
方法2:toArray方法(返回数组)
总结:
整理的时候,自己又重新过了一遍,知识点很繁琐,需要大量练习。整理结束,撒花!!!