Java8 新特性
Java8里面主要包含了函数式编程。本文代码地址.
目录结构:
第一个大类是Function:
A. Predicate是返回boolean类型Function,执行的是test。
B. Function是R apply(T t);主要用于返回结果。
C. Consumer是主要用于执行的,void accept(T t);通常用于执行异步方法。
D. 除去前面所有的传入一个参数,还有可以传入两个参数的,用法与之前的相同。
第二大类是接口:
A Java8的接口可以有默认的实现方法
B.可以传入方法
C.接口之间的继承行为
D.lambda中的变量应该是final的,而不是随意更改的
E.使用lambda分别实践了Comparable和Comparator
Comparable通过改造元素本身来实现排序,Comparator通过编写排序规则来实现排序
第三大类:stream
Stream是可以多线程,并发执行的。
Stream可以对元素进行分组。
Java8通过新增Optional实现对空指针的处理。
Stream可以Partitioning,的意思就是可以按照要求给元素分组。
求和。
第一个大类是Function:
A. Predicate是返回boolean类型Function,执行的是test,用法有以下几种:
Predicatea. Predicate bonusLambdas = (emp)->emp.getRating()>10?true:false;
b. Predicate execLambdas = (emp)->emp.getName().startsWith("ad")?true:false;
Predicate andLambdas = bonusLambdas.and(execLambdas);
c. Predicate isEqualsLambdas = Predicate.isEqual(new Employee(7,"admins"));
d. employeeList.stream().filter(isEqualsLambdas).collect(Collectors.toList()).forEach(item ->{
System.out.println("isEqualsLambdas: "+item.getRating()+" "+item.getName());
});
e. 自带的几个函数:or,and,isEqual,negate
B. Function是R apply(T t);主要用于返回结果,用法有以下几种:
Functionb.flatmap c.andThen,compose d.Identifya. Funciton getMovie = s ->new Movie(s);
private Movie testMovie(String movie){
return getMovie.apply(movie);
}
b.stream中的map就是用Function: Stream map(Function mapper);
并对flatmap学习.
c. Funtion是可以并运算的,andthen先执行前者,后执行后者。compose是先执行后者,再执行前者。
d. Function有个Identify的效果跟原来的一样。
C. Consumer是主要用于执行的,void accept(T t);通常用于执行异步方法。
ConsumerD. 除去前面所有的传入一个参数,还有可以传入两个参数的,用法与之前的相同。
BiPredicate D第二大类是接口:
A Java8的接口可以有默认的实现方法
主要解决的是一个封装问题,对于确定性的步骤,我们可以封装成一个默认的实现。
isExecB.可以传入方法
Input functioninterfaceC.接口之间的继承行为
子类可以访问父类的默认实现方法,当有多个父类的方法相同可以使用super区分
InheritD.lambda中的变量应该是final的,而不是随意更改的
FinalE.使用lambda分别实践了Comparable和Comparator
Comparable通过改造元素本身来实现排序,Comparator通过编写排序规则来实现排序
Comparator第三大类:stream
Stream是可以多线程,并发执行的,通过ForkJoinTask原理:https://blog.csdn.net/u013898617/article/details/79146389
StreamStream可以对元素进行分组:
GroupingJava8通过新增Optional实现对空指针的处理:
OptionalStream可以Partitioning,的意思就是可以按照要求给元素分组:
Partitioning求和:
Sum