导图社区 Java8新特性
Lambda 表达式,函数式接口,类引用,构造器引用 StreamAPI
社区模板帮助中心,点此进入>>
互联网9大思维
组织架构-单商户商城webAPP 思维导图。
域控上线
python思维导图
css
CSS
计算机操作系统思维导图
计算机组成原理
IMX6UL(A7)
考试学情分析系统
Java8新特性
简介 1.速度更快 2.代码更少 3.强大的Stream API 4.便于并行 5.最大化减少空指针异常
1.Lambda 表达式
为什么使用Lambda表达式?
Lambda是一个匿名函数,可以理解为是一段可以传递的代码,将代码像数据一样传递。 可以写出更简洁,更灵活的代码,big作为一种紧凑的代码风格,是Java 语言表达能力得到了提升
如何使用?
1.举例 (a,b)-> Integer.compare(a,b) 2.格式 -> //Lambda操作符,箭头操作符 (其实就是接口中的抽象方法的形参列表) -> //操作符左边 参数 右边lambda体 (重写的抽象方法的方法体) 3.Lambda表达式的使用 4.Lambda表达式的本质: 作为函数式接口的是实例 总结: -> 左边:形参列表的参数类型可以省略(类型推断) , 如果形参列表只有一个参数, 括号可以省略 -> 右边:Lambda 体使用{} 包裹,如果lambda 体只有一条执行语句 则括号也可以省略, 如果是带返回的 省略了括号 需要连带return 关键字一起省略
2.函数式接口
@FunctionalInterface public interface TestInterface{ void method(); } 只有一个抽象方法的接口, 成为函数式接口 @FunctionalInterface 通过这个注解进行检验改接口是否是函数式接口, 如果包含多个抽象方法会被检测出来
内置四大核心函数式接口
1.Consumer<T>
对象类型为T 的对象应用操作, 包含方法 void accept(T t);
2.Supplier<T>
参数类型无 返回类型T 用于返回类型为T 的对象,包含方法 T get()
3.Function<T,R>
函数类型接口 对类型为T 的对象应用操作,并返回R类型的对象, 包含方法 R apply(T t)
4.Predicate<T>
判定型接口 参数类型T 返回类型boolean 确定类型为T 的对象是否满足某种条件 并返回boolean 值 包含方法 boolean test(T t)
其他接口
BiFunction<T,U,R>
UnaryOperator<T>
BinaryOperator<T,T>
BiConsumer<T,U>
BiPredicate<T,U>
ToIntFunction<T>
ToLongFunction<T>
ToDoubleFunction<T>
IntFunction<R>
LongFunction<R>
DoubleFunction<R>
3.方法引用与构造器引用
1.使用场景
当要传递给Lambda体的操作已经有实现的方法了就可以使用方法引用
方法引用
1. 对象:: 实例方法
2. 类::实例方法
3.类:: 静态方法
构造器引用
Function<Demo,Integer> f = Demo::new;
6.新时间日期API
5.接口中的默认方法与静态方法
4.强大的Stream API
介绍
吧真正的函数式编程风格引入到Java当中,提供了一种高效且易于使用的数据处理方式
为什么要使用StreamAPI
实际开发中国,项目中多数数据源都来自于MySql, Oracle 等,现在数据源可以更多了, 有MongoDB,Redis等,这些NoSQL 的数据就需要java 层面去处理 Stream 和Collection 集合的区别, Collection 是一种静态的内存数据结构, 而Stream 是有关计算的, 前者主要面向内存,存储在内存中,后者主要面向CPU ,通过CPU 实现计算。 一句话概括 集合讲的是数据, Stream 讲的是计算 Stream 自己不会存储元素 不会改变源对象,相反, 他们会返回一个持有结果的新Stream Stream 操作是有延迟执行的, 意味着会等到需要结果的时候才执行。
中间操作
筛选filter,映射map,排序sort
串行、并行 执行终止操作
查找与匹配
allMatch
anyMatch
nonMatch
findFirst
findAny
count
max(Comparator c)
min(Comparator c)
forEach(Consumer c)
规约
reduce
收集
collect(Collector c)
Optional 类
为了在程序中尽量避免出现空异常而使用
7.其他新特性