Java 中 Lambda 表达式和方法引用的差异?
Lambda 表达式是一种匿名方法(无名方法),用于提供一个由函数式接口定义的方法的内联执行,而方法引用类似于Lambda 表达式,它引用了一个方法而不执行它。在 Lambda 表达式中,可以使用箭头 (->) 运算符将参数和功能连接起来,在方法引用中,(::) 运算符将方法名与一个对象或类的名称分隔开。
Lambda 表达式的语法
([comma seperated argument-list]) -> {body}方法引用的语法
<classname> :: <methodname>
示例
import java.util.*;
public class LambdaMethodReferenceTest {
public static void main(String args[]) {
List<String> myList = Arrays.asList("INDIA", "AUSTRALIA", "ENGLAND", "NEWZEALAND", "SCOTLAND");
System.out.println("------- Lambda Expression --------");
// Using Lambda function to call system.out.println()
myList.stream().map(s -> s.toUpperCase())
.forEach(s -> System.out.println(s));
System.out.println("------- Method Reference ---------");
// Using Method reference to call system.out.println()
myList.stream().map(String :: toUpperCase).sorted()
.forEach(System.out :: println);
}
}输出
------- Lambda Expression -------- INDIA AUSTRALIA ENGLAND NEWZEALAND SCOTLAND ------- Method Reference -------- AUSTRALIA ENGLAND INDIA NEWZEALAND SCOTLAND
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP