一篇文章让你彻底掌握Lambda表达式的使用

乔欣 Java教程 发布时间:2022-12-02 16:50:28 阅读数:6424 1
下文笔者将详细讲解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)));
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaCourse/202212/5001.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者