甩掉循环 -- lambda 表达式在集合中的 Stream 操作

欢迎点击

lambda 在集合中的 Stream 操作

Stream 操作

Stream 操作分为 中间操作最终操作两种

中间操作 返回的依然是 stream 对象
最终操作 返回特定 的 计算结果

中间操作

包括但不局限于: map、 filter、 distinct、 sorted、 peek、 limit、 skip、 parallel、 unordered

  • map : 一一映射 , A -> B
  • filter : 过滤操作 , A(n) -> A(n - x)
  • distinct : 选取不同元素[^4], A{a, b, c, a} -> A{a, b, c}
    在有序流的情况下,不同元素的选择是稳定的。但是,在无序流的情况下,不同元素的选择不一定是稳定的,并且可以更改
  • sorted : 排序1
  • peek : 该方法主要用于支持调试,您希望在流程中流过某个特定点时查看元素
  • limit : 返回 不超过 n 长度的数据 [ limit(long n)]
  • skip : 丢弃前 n 个数据 [skip(long n)]
最终操作

包括但不局限于:forEach、 toArray、 min、 max、 count、 anyMatch、 allMatch、 noneMatch、 findFirst、 findAny、 iterator等

  • forEach : 遍历
  • toArray : 转换成列表
  • min : 最小
  • max: 最大
  • count:数量
  • anyMatch: 条件判断 相当于 || 返回 boolean
  • allMatch: 条件判断 相当于 && 返回 boolean
  • noneMatch: 条件判断 相当于 ! 返回 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)

参考内容


  1. sorted ↩︎

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值