关于Java8的精心总结( 三 )

  • 延迟查找 , 很多流操作(过滤 , 映射 , 排序 , 分区等)都可以延迟实现;
  • SQL语句是一种描述性的语言 , 只需要发送指令告诉底层需要做什么 , 而不关心底层是怎么实现的 , 而流其实也是一样的 , 只需要知道做什么 , 而不需要知道具体底层是怎么做的 。
    内部迭代和外部迭代本质刨析:(操作流就像英语中的完形填空 , 直接操作集合就是完成一个完整的命题作文)
    内部迭代
    用流 , 是并行化 , 以下代码可能你觉得有多个循环 , 但是流的底层实际上只用了一个循环 , 可以这样想 , 流实际上是一个容器 , 里面有一个集合 , 这个集合存放的是对流的各种操作 , 流会尽最大可能去优化;以下代码也不是按照顺序一个一个执行的 , 是由集合框架自己决定的
    关于Java8的精心总结

    文章插图
     
    外部迭代
    用集合 , 是串行化 , 下图是我的代码 , 可以帮助大家理解
    关于Java8的精心总结

    文章插图
     
    集合关注的是数据与数据存储本身;
    流关注的是对数据的计算;
    流与迭代器类似的一点是:流是无法重复使用或消费的
    如何判断是中间操作还是终止操作呢
    中间操作都会返回一个Stream对象 , 比如Stream , Stream , Stream
    终止操作则不会返回Steam类型 , 可能不返回值 , 也可能返回其他类型的单个值
    Stream流里面的方法:
    int sum = Stream.iterate(1, item -> item + 2).limit(6).filter(item -> item > 2).mapToInt(item -> item * 2) .skip(2).limit(2).sum();skip():忽略掉前几个元素
    limit():获取前几个元素
    sum():求和(map映射是没有求和方法的)
    Stream分组与分区(partition ):
    分组:group by
    分区:partition by (布尔值)
    分区是分组的一种特殊情况
    流的特性:
    流一旦被操作或使用了 , 就不能再去重复的使用这个流 , 或者说流一旦被关闭了 , 也是不能再去重复使用了
    五、Optional类中文意思:可选
    Optional类的使用其实在其他语言里很早就使用了(比如Swift、Groovy、Scala) , Java是最晚使用的 , 
    它的出现主要解决的问题:NPE(NullPointerException)
    if (null != person){ Address address = person.getName(); if (null != address){ } }
    六、高阶函数高阶函数:如果一个函数接受一个函数作为参数 , 或者返回一个函数作为一个返回值 , 那么该函数就叫做高阶函数 。
    默认方法
    接口当中可以声明方法的实现了 , 但是这个方法的实现必须要带上default关键字
    从java8开始 , 为啥要增加默认方法?
    Collector收集器(很重要)
    R collect(Collector<? super T, A, R> collector);
    • collect:收集器
    • Collector作为collect方法的参数
    • Collector是一个接口 , 它是一个可变的汇聚操作 , 将输入元素累积到一个可变的结果容器中(ArrayList就是一个可变的容器) , 它会在所有元素处理完毕之后 , 将累积的结果转换成一个最终的表示(这是一个可选操作) , 它支持串行(一个线程执行)和并行(多个线程执行)两种方式执行 。
    • Collectors本身提供了关于Collector的常见汇聚实现 , Collectors本身实际是一个工厂(Collectors提供了很多可变汇聚操作的实现)
    public interface Collector{ Supplier supplier(); BiConsumer accumulator();//翻译成累加器 //将两个结果容器合并成一个(用于线程并发) BinaryOperator combiner();//结合器 Function finisher();//完成器 }
    Collector同一性和结合性分析
    combiner函数:
    Iterator迭代器
    总结? 以上是我关于jdk1.8新特性的一些总结 , 欢迎大家相互交流 。




    推荐阅读