Java Stream 流(十四)

Stream 流

概述

  • Stream 流的使用

    • 生成流

      • 通过数据源(集合,数组等)生成流

        list.stream()
        
    • 中间操作

      • 一个流后面可以跟随零个或多个中间操作,其目的主要是打开流,做出某种程度的数据过滤/映射,然后返回一个新的流,交给下一个操作使用

        filter()
        
    • 终结操作

      • 一个流只能有一个终结操作,当这个操作执行后,流就被使用 “光” 了,无法再被操作

        forEach()
        

Stream 流的生成方式

  • Stream 流常见生成方式

    • Collection 体系的集合可以使用默认方法 stream() 生成流

      default Stream<E> stream()
      
    • Map 体系的集合简介的生成流

      Stream<K> keyStream = map.keySet().stream();  // Map键生成流
      Stream<V> valueStream = map.values().stream();  // Map值生成流
      Stream<Map.Entry<String,Integer>> entryStream = map.entrySet().stream();
      // Map键值对对象生成流
      
    • 数组可以通过 Stream 接口的静态方法 of(T... values) 生成流

      String[] strArray = new String[1024];
      Stream<String> strArrayStream = Stream.of(strArray);  // 数组生成流方式一
      Stream<Integer> intStream = Stream.of(10,20,30);  // 数组生成流方式二
      

Stream 流的常见中间操作

  • Stream<T> filter(Predicate predicate) :用于对流中的数据进行过滤

    • Predicate 接口中的方法 Boolean test(T t) :对给定的参数进行判断,返回一个布尔值
  • Stream<T> limit(long maxSize) :返回此流中的元素,截取前指定参数个数的数据

  • Stream<T> skip(long n)跳过指定参数个数的数据,返回由该流的剩余元素组成的流

  • static <T> Stream<T> concat(Stream a,Stream b)合并 a 和 b 两个流为一个流

  • Stream<T> distinct() :返回由该流的不同元素(根据 Object equals(Object o) )组成的流

  • Stream<T> sorted() :返回由此流的元素组成的流,根据自然顺序排序

  • Stream<T> sorted(Comparator comparator) :返回由该流的元素组成的流,根据提供的 Comparator 进行排序

  • <R> Stream<R> map(Function mapper) :返回由给定函数应用于此流的元素的结果组成的流,常用于转化

    • Function 接口中的方法 R apply(T t)
  • IntStream mapToInt(ToIntFunction mapper) :返回一个 IntStream 其中包含给定函数应用于此流的元素的结果

    • IntStream :表示原始 int
    • ToIntFunction 接口中的方法:int applyAsInt(T value)
    • IntStream 中特有的方法的 int sum() :对流中的值进行求和,并返回求和结果

Stream 流的常见终结操作

  • void forEach(Consumer action) :对此流的每个元素执行操作
    • Consumer 接口中的方法 void accept(T t) :对给定的参数执行此操作
  • long count() :返回此流中的元素个数

Stream 流的收集操作

  • R collect(Collector collector) :该收集方法的参数是一个 Collector 接口
  • 工具类 Collectors 提供了具体的收集方法
    • public static <T> Collector toList() :把元素收集到 List 集合中
    • public static <T> Collector toSet() :把元素收集到 Set 集合中
    • public static Collector toMap(Function keyMapper,Function valueMapper) :把元素收集到 Map 集合中
  • Java

    Java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由 Sun Microsystems 公司于 1995 年 5 月推出的。Java 技术具有卓越的通用性、高效性、平台移植性和安全性。

    3188 引用 • 8214 回帖 • 1 关注
  • Stream流
    1 引用

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...