一、lambda表达式:Lambda表达式是一种匿名函数,可以在需要函数的地方直接定义函数,而不必定义函数名。Lambda表达式通常用于函数式编程中,可以作为参数传递给其他函数,或者作为返回值返回。
1.函数接口:函数接口是只有一个抽象方法的接口。Lambda表达式可以被转换为这种接口的实例。
2.lambda表达式调用外部变量:外部变量必须是final或者有效final的,即一旦被赋值后就不可再修改。Lambda表达式中对外部变量的访问是值传递的,而不是引用传递的。Lambda表达式中对外部变量的修改会影响到外部变量本身。
二、方法的引用:是一种简化Lambda表达式的方式,它可以将一个方法作为参数传递给另一个方法,从而避免了Lambda表达式中重复的代码。
1.引用构造方法:构造方法的语法为无参构造方法,有参构造方法,数组构造方法。
2.静态方法名:这个语法中出现了一个新的操作符“::”,这是由两个英文冒号组成的操作符,冒号之间没有空格。这个操作符左边表示方法所属的类名,右边是方法名。需要注意的是,这个语法中方法名是没有圆括号的。
3.引用带泛型的方法:泛型是Java开发经常使用到的功能,“::”操作符支持引用带泛型的方法。除方法外,“::”操作符也支持引用带泛型的类。
三、流处理:流处理有点类似数据库的SQL语句,可以执行非常复杂的过滤、映射、查找和收集功能,并且代码量很少。
1.数据过滤:filter()方法:是Stream接口提供的过滤方法。该方法可以将lambda表达式作为参数,然后按照lambda表达式的逻辑过滤流中的元素。过滤出想要的流元素后,还需使用Stream提供的cllect()方法按照指定方法重新封装。
2.数据收集 :数据统计:不仅可以筛选出特殊元素,还可以对元素的属性进行统计计算,由
课堂代码: