Java -8 新特性学习

  • 函数式接口:如果一个接口中只声明了一个抽象方法,则此接口称为函数式接口
  • 我们可以在函数式接口上添加注解@FunctionInterface来检验该接口是否是函数式接口
  • Java8 为我们提供了丰富的函数式接口,其中四大核心(Consumer,supplier,Function,Predicate)
    实际应用中Consumer、Predicate两个接口使用的比较多,均可采用函数式编程
  • 方法应用和构造器引用
    使用格式===>类(对象)::方法名
    具体分为三种:
    对象::非静态方法
    类::静态方法
    类::非静态方法
  • Java新特性之二-------Stream API
    • Stream和Collection之间区别
      | Collection:是一种静态的内存数据结构,主要面向内存的
      | Stream:是有关计算的,主要面向的是计算

    • Stream解释
      | 一个中间操作链,对数据源的数据进行处理
      | 一旦执行中间操作,就会产生结果,之后便不会在被使用

    • Stream使用
      | 集合转变为stream
      * 集合.stream() ===>返回的是一个顺序流
      * 集合.parallelStream() ===>返回的是一个并行流
      * 顺序流和并行流的区别类似于linkedhashmap和hashmap的区别,并行流的效率要高于顺序流
      | 数组转变为stream
      使用Arrays.stream() 方法将数组转变为流
      | 使用Stream.of() ==>静态方法来转变为流
      eg: Stream.of(1,2,3).forEach(System.out::println);
      | 创建无限流
      * Stream.iterate()
      * Stream.generate()
      | StreamAPI中强大的筛选和切片
      * filter(Predicate p)
      * limit(Integer n) ===> 截取给定数量的元素
      * skip(Integer n) ===> 顺序流,跳过前n个元素
      * distinct() ===>根据元素的hashcode和equals方法来去重
      | StreamAPI中的映射
      * map ===>将流中的元素按照颐一定规则映射出来
      * flatMap ===>解决的是嵌套的元素,会将所有元素打开形成一个个元素,然后将这些元素重新组合成新的流
      * 理解一下二者之间的区别!!!

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第一章 为什么要关心Java 8 使用Stream库来选择最佳低级执行机制可以避免使用Synchronized(同...
    谢随安阅读 1,518评论 0 4
  • 原链接:http://www.cnblogs.com/langtianya/p/3757993.html JDK各...
    把爱放下会走更远阅读 1,127评论 0 10
  • Java 8的新特性可以帮助你: 1.使用Java 8可以减少冗长的代码,让代码更易于理解 2.通过方法引用和St...
    Phoenix小彬阅读 963评论 0 2
  • Java8 in action 没有共享的可变数据,将方法和函数即代码传递给其他方法的能力就是我们平常所说的函数式...
    铁牛很铁阅读 1,274评论 1 2
  • 【善良的清贫】 孤独的镜子照出丑陋的心 苍老的影子掩盖残存的童真 窗外冰雨刺破夜的美胴 梦里的故乡早已支离破碎 该...
    小王子_03f9阅读 414评论 3 4