1. Lambda 表达式
1.1可选类型声明
不需要声明参数类型,编译器可以统一识别参数值
Collections.sort(names, (s1, s2) -> s1.compareTo(s2));
==
Collections.sort(names, (String s1, String s2) -> s1.compareTo(s2));
1.2可选的参数圆括号
单个参数
Arrays.asList( "a", "b", "d" ).forEach( e -> System.out.println( e ) );
多个参数
Arrays.asList( "a", "b", "d" ).sort( ( e1, e2 ) -> e1.compareTo( e2 ) );
1.3可选的大括号
简单处理
Arrays.asList( "a", "b", "c" ).forEach( e -> System.out.println( e ) );
多个逻辑处理
Arrays.asList( "a", "b", "c" ).forEach( e -> {
System.out.println( e );
System.out.println( e );
} );
1.4可选的返回关键字
简单返回
Arrays.asList( "a", "b", "d" ).sort( ( e1, e2 ) -> e1.compareTo( e2 ) );
逻辑处理返回
Arrays.asList( "a", "b", "d" ).sort( ( e1, e2 ) -> {
int result = e1.compareTo( e2 );
return result;
} );
1.5变量作用域
Lambda 表达式的局部变量可以不用声明为final,但是必须不可被后面的代码修改