Java8特性
- 1.Lambda表达式
- 语法
- 2.函数式接口
- 3.方法、构造器的引用
- 4.Stream API
- 5.BufferedReader lines 转换成Stream
1.0 Lambda表达式
1.1 语法
- Lambda表达式引入新的操作符"->";
- 左侧:表达式需要的参数
- 右侧:Lambda体需要执行的功能
1.1.1 无参数,无返回值
Runnable r2 = ()->System.out.println("lambda:无参数无返回值")
1.1.2 有一个参数无返回值
Consumer<String> consumer = (t)->System.out.println(t);
consumer.accept("有没有为谁拼过命");
1.1.2 只有一个参数时小括号可以去除
Consumer<String> consumer1 = t->System.out.println(t);
consumer1.accept("有没有为谁拼过命");
1.1.3 Lambda 需要两个参数,并且有返回值
Comparator<Integer> comp =(x,y)->{
return Integer.compare(x, y);
};
int result = comp.compare(100, 99);
System.out.println(result);
1.1.4 Lambda 体只有一条语句时,return 与大括号可以省略
Comparator<Integer> comp =(x,y)-> Integer.compare(x, y);
int result = comp.compare(100, 99);
System.out.println(result);
1.1.5 数据类型可以省略,因为可由编译器推断得出,称为“类型推断”
Comparator<Integer> comp2 =(Integer x,Integer y)-> Integer.compare(x, y);
int result2 = comp2.compare(90, 99);
System.out.println(result2);