第6章 集合框架 - Predicate和Stream操作集合

优质
小牛编辑
130浏览
2023-12-01

Predicate 操作集合

Predicate 谓词对象,函数式接口,可以使用Lambda表达式作为参数。

  • test()

Collection的removeIf(Predicate filter)方法,批量删除符合filter条件的元素

Stream 操作集合

A sequence of elements supporting sequential and parallel aggregate operations.

  • Stream是元素的集合,这点让Stream看起来用些类似Iterator;
  • 可以支持顺序和并行的对原Stream进行汇聚的操作;

Stream是什么?高级迭代器

  • 大家可以把Stream当成一个高级版本的Iterator
  • Iterator,用户只能一个一个的遍历元素并对其执行某些操作
  • Stream,用户只要给出需要对其包含的元素执行什么操作

什么是Stream api

jdk8使用流水线的方法处理数据。一堆操作符的集合。

dk8 Stream:是一个集合,但是可能接受多个环节的处理。每个环节专门的操作符(处理方法:由于非常简短看起来就像一个符号)

流式 API,获取Stream:Collection的stream()方法

  • Stream
  • IntStream
  • LongStream
  • DoubleStream

对应的Builder

  • Stream.Builder
  • IntStream.Builder
  • LongStream.Builder
  • DoubleStream.Builder

Stream

中间方法

方法声明功能描述
filter()过滤
map()转换
mapToXxx()一对一转换
flatMap()集合扁平化
flatMapToXxx()
peek()
skip()
distinct()去重
sorted()排序
limit()
concat()合并流

末端方法

方法声明功能描述
forEach()遍历
toArray()将流中的元素转换成数组
reduce()合并流中的元素
min()最小值
max()最大值
count()获取流中元素的数量
anyMatch()
allMatch()
nonMatch()
findFirst()获取流中的第一个元素
findAny()获取流中的任意一个元素

IntStream

方法声明功能描述
builder()
max()
min()
sum()
count()
average()
allMatch()
anyMatch()
map()一对一转换
forEach()遍历