美文网首页
Java -8 新特性学习

Java -8 新特性学习

作者: c3e1ce81199b | 来源:发表于2019-07-07 23:28 被阅读0次
    • 函数式接口:如果一个接口中只声明了一个抽象方法,则此接口称为函数式接口
    • 我们可以在函数式接口上添加注解@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 新特性学习

          本文链接:https://www.haomeiwen.com/subject/lodwhctx.html