jdk8-Stream流

Stream

  • 创建流

    • empty 创建空元素的stream
    • of 传入元素创建stream
    • iterate 通过UnaryOperator元算器,创建无限个元素的stream
    • generate 通过Supplier 提供函数接口,创建 无限个元素的stream
    • concat 合并多个流
  • 中间流

    • filter 过滤

    • map 一对一转换

    • flatMap 一对多转换

    • distinct 过滤去重, Object.equals(Object)(需要重写equals,hashcode)

    • sorted 排序 (要不是已经实现了Comparable接口重写方法,或者传入Comparator比较器)

    • peek 主要是非业务操作,比如调试等

    • limit 只取多少个就中断

    • skip 跳过元素

  • 终端流

    • forEach 循环

    • toArray 转数组

    • reduce 累积(传入BinaryOperator 运算器)

    • collect 收集器

      • R collect(Supplier supplier, BiConsumer accumulator, BiConsumer combiner)

        • supplier——最终结果容器。(可选)

          accumulator——计算临时结果的过。

          combiner——把临时结果导入最终容器。(可选)

          List<String> asList = stringStream.collect(ArrayList::new, ArrayList::add, ArrayList::addAll);
          
      • R collect(Collector collector)

        • Collector 收集器接口 Collectors默认的一些收集策略
        Collectors
        - toList 转list
        - toSet	转set
        - joining 把元素拼接起来
        - groupingBy 元素进行分组
        - ......
        
    • min 传入Comparator比较器,获取最小值

    • max 传入Comparator比较器,获取最大值

    • count 获取元素个数

    • anyMatch 传入Predicate 断言 任意一个匹配上返回true

    • allMatch 传入Predicate 断言 全匹配上返回true

    • noneMatch 传入Predicate 断言 没匹配上返回true

    • findFirst 获取第一个元素

    • findAny 获取任意一个元素

你可能感兴趣的:(java,java,jvm,开发语言)