Java 8 Stream(三、Stream中间操作:filter()、distinct()、skip()、limit()、map()、flatMap()、sorted()、peek())

上文我们对Stream操作和无限流做了介绍,没看过的同学请出门左转 Java 8 Stream(二、Stream操作和无限流)。


文章目录

  • 一、分类
  • 二、介绍
    • (一)筛选与切片
      • 1、filter()
      • 2、distinct()
      • 3、skip()
      • 4、limit()
    • (二)映射
      • 1、map()
      • 2、flatMap()
    • (三)排序
      • 1、sorted()
    • (四)消费
      • 1、peek()
      • Java 8 Stream

本文我们主要介绍Stream中间操作(Intermediate operations)。

一、分类

根据对元素的处理方式,中间操作可分为无状态(Stateless)操作和有状态(Stateful)操作。
无状态: 元素的处理不受之前元素的影响,例如filter()、map()、flatMap()等。
有状态: 操作只有拿到所有元素之后才能继续下去,例如distinct()、skip()、limit()等。
具体分类详见 Java 8 Stream(二、Stream操作和无限流)一、(四)操作分类

二、介绍

(一)筛选与切片

1、filter()

Stream<T> filter(Predicate<? super T> predicate);

说明: 接受一个函数式接口Predicate为入参,过滤流中的数据。
示例:

Stream.of("1", "2", "3").filter(x -> x.equals("2")).forEach(System.out::println);    // 2

2、distinct()

Stream<T> distinct();

说明: 通过流中元素的hashCode() 和 equals() 去重。
示例:

Stream.of("1", "3", "3").distinct().forEach(System.out::println

你可能感兴趣的:(Java,java,stream,lambda,intellij,idea)