目录
前言
函数式编程作为Java8最重要的新特性之一,一定程度上提升了使用Java编码的体验,我们平时多多少少也都会使用到函数式接口,但可能缺乏系统性的认知。
比如Lambda表达式的定义,Stream API的使用,Optional的定义和作用,他们跟函数式接口的联系,System.out::println这类语法的产生。
函数式编程
函数式编程是一种编程方式、编程风格,即针对确定的输入,有确定的输出。
函数式编程注重数据的映射,一个函数的返回值,仅仅依赖于参数的值,而不会因为其他外部的状态不同而不同。
函数式编程例子
public class Example {
public static void main(String[] args) {
List<String> list = Arrays.asList("Lambda","operator","calculate","SpringBoot","Java");
//打印首字母为大写的字符串
list.stream().filter(str -> Character.isUpperCase(str.charAt(0)))
.forEach(System.out::println);
//等同于
for(String str : list){
if(Character.isUpperCase(str.charAt(0))){
System.out.println(str);
}
}
//打印每个字符串首个字母
list.stream().map(str -> str.substring(0,1))
.forEach(System.out::println);
//等同于
for(String str : list){
System.out.println(str.substring(0,1));
}
}
}
理解不了没关系,慢慢往下看