lambda 在集合中的 Stream 操作
Stream 操作
Stream 操作分为
中间操作
和最终操作
两种中间操作 返回的依然是 stream 对象
最终操作 返回特定 的 计算结果
中间操作
包括但不局限于: map、 filter、 distinct、 sorted、 peek、 limit、 skip、 parallel、 unordered
最终操作
包括但不局限于:forEach、 toArray、 min、 max、 count、 anyMatch、 allMatch、 noneMatch、 findFirst、 findAny、 iterator等
- forEach : 遍历
- toArray : 转换成列表
- min : 最小
- max: 最大
count:数量
anyMatch: 条件判断 相当于
||
返回 booleanallMatch: 条件判断 相当于
&&
返回 booleannoneMatch: 条件判断 相当于
!
返回 boolean- 例如:
Arrays.asList(1, 3, 2, 3).stream().anyMatch(e -> e==1)
- 例如:
findFirst: 查找第一个元素
- 例如:
Optional<Integer> first = integers.stream().findFirst();
- first.get() 获取元素
Optional<T> findFirst()
- 例如:
findAny: 查找一个元素 相对 findFirst 具有不稳定性
Optional<T> findAny()
iterator : 迭代器
static <T> Stream<T> iterate(T seed, Predicate<? super T> hasNext, UnaryOperator<T> next)
static <T> Stream<T> iterate(T seed, UnaryOperator<T> f)
groupingBy 2 : 分组
参考内容
1. sorted ↩
2 . groupingBy ↩