JDK1.8的新特性

 

jdk1.8新特性:
    Lambda表达式:
    Stream:
    
Lambda表达式:
    将函数当成参数传递给某个方法,或者把代码本身当作数据处理
    
书写方式:
    (数据类型 变量名,数据类型 变量名...)->{
    ...
    return ;(可以不写)
    }
或者:
    (变量名, 变量名,...)->{代码块}
或者:
    变量->{代码块}
或者:
    变量->代码
     
    Lambda表达式可以引用类成员和局部变量,会将这些变量隐式转换成final的

函数式接口:
    只包含一个方法的接口,且该方法是抽象方法
    @FunctionalInterface
    
    语法:
        (参数列表)->表达式
    或者
        (参数列表)->{表达式;}
    
    Consumer<T>:消费型接口 void accept(T t)
    Supplier<T>:供应型接口 T get()
    Function<T,R>:函数型接口 R apply(T t)
    Predicate<T>:断言型接口 boolean test(T t)
    
    接口的默认方法:default
    
方法引用:只写方法名,不加()
    类名::静态方法名
    实例名::实例方法名
    类名::实例方法名
    类名::new     构造器引用
    
Stream:
    1)操作数据源(集合/数组所生成的元素序列)
    2)仅仅代表着数据流,并没有数据结构
    3)串行和并行实现
    
    特点:
        1)Stream自己不会存储元素
        2)Stream流不会改变源对象
        3)延迟执行
    步骤:
        1)创建Stream
            a)通过Collection系列(Set/List)的集合提供的stream()方法[串行方法]或者parallelStream()方法[并行方法]
            b)通过Arrays类中的静态方法stream()方法
            c)通过Stream类中的静态方法of()方法 
            d)创建无限流,迭代方法iterate()或者generate()方法,可以用limit来进行限制
        2)中间操作
            filter:对Stream中的元素使用给定的过滤函数进行过滤操作
            map:对Stream中的元素使用给定的转换函数进行转换操作
            flatmap:平铺映射
            sorted:
            limit:
            distinct:去重,需要重写equals()和hashCode()方法 
            skip(n):跳过元素个数
        3)终止操作
            count:计数,返回值是long
            max:
            min:
            findAny:
            findFirst:
            forEach:

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值