一篇文章让你彻底掌握Lambda表达式的使用
下文笔者将详细讲解Lambda表达式的使用简介说明,如下所示
Lambda表达式的简介
Lambda表达式:
Java SE8中的新特性
lambda表达式允许使用表达式来代替功能接口
lambda表达式:
可以理解为一个匿名方法,他可正常接收参数信息和返回相应值
Lambda表达式的功效
使用Lambda表达式可以 让我们采用使用更简短的代码,编写一些程序
Lambda表达式语法
基本语法:
(parameters) -> expression
或
(parameters) ->{ statements; }
lambda表达式示例分享
// 1.不需要参数,返回值为88 () -> 88 // 2.接收一个参数(数字类型),返回其3倍的值 x -> 3 * x // 3.接受2个参数(数字) //并返回他们的差值 (x, y) -> x – y // 4.接收2个int型整数,返回他们的和 (int x, int y) -> x + y // 5.接受一个string对象 //控制台打印输出 (String s) -> System.out.print(s)
Lambda改写原循环代码
String[] arrs = {"a", "b","c","d"};
list<String> list = Arrays.asList(arrs);
// 以前的循环方式
for (String l: list) {
System.out.print(l + "; ");
}
// 使用 lambda 表达式以及函数操作(functional operation)
list.forEach((l) -> System.out.print(l + "; "));
// 在 Java 8 中使用双冒号操作符(double colon operator)
list.forEach(System.out::println);
匿名内部类的使用Lambda改写
// 使用匿名内部类
btn.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
System.out.println("匿名函数!");
}
});
// 或者使用 lambda expression
btn.setOnAction(event -> System.out.println("Hello World!"));
lambdas来实现Runnable接口示例
//使用匿名内部类
new Thread(new Runnable() {
@Override
public void run() {
System.out.println("线程打印信息!");
}
}).start();
//使用lambda expression
new Thread(() -> System.out.println("线程打印信息!")).start();
//使用匿名内部类
Runnable r1 = new Runnable() {
@Override
public void run() {
System.out.println("线程打印信息!");
}
};
//使用 lambda expression
Runnable r2 = () -> System.out.println("线程打印信息!");
使用Lambdas排序集合
String[] arrs = {"a", "b","c","d"};
//使用匿名内部类根据 name 排序 players
Arrays.sort(arrs, new Comparator<String>() {
@Override
public int compare(String s1, String s2) {
return (s1.compareTo(s2));
}
});
//使用lambdas
Comparator<String> sortByName = (String s1, String s2) -> (s1.compareTo(s2));
Arrays.sort(arrs, sortByName);
Arrays.sort(arrs, (String s1, String s2) -> (s1.compareTo(s2)));
//使用 lambda expression 排序,根据最后一个字母
Comparator<String> sortByLastLetter =
(String s1, String s2) ->
(s1.charAt(s1.length() - 1) - s2.charAt(s2.length() - 1));
Arrays.sort(arrs, sortByLastLetter);
Arrays.sort(arrs, (String s1, String s2) -> (s1.charAt(s1.length() - 1) - s2.charAt(s2.length() - 1)));
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。


