Fork me on GitHub

java拓展----探秘Lambda 表达式

目录

  1.关于Lambda表达式

  2.java中的Lambda表达式的特性及语法格式

  3.javaLambda表达式的实现

  4.总结

一、关于Lambda表达式

  首先Lambda表达式并不是只有java中才特有的表达式。其他编程语言中同样也拥有这个表达式。Lambda表达式可使程序更简洁。不同语言的Lambda表达式中定义的规范不同。具体需要看官方文档的定义。

 

二、java中的Lambda表达式的特性及语法格式

  1.java中的Lambda表达式的特性

    Lambda表达式,也可称为闭包,它是推动Java 8发布的最重要新特性。

    Lambda允许把函数作为一个方法的参数(函数作为参数传递进方法中

    使用Lambda表达式可以使代码变的更加简洁紧凑。

  2.Lambda表达式的语法格式

    (parameters) -> expression

  (parameters)->{statements;}

 

三、javaLambda表达式的实现

  java中如果要使用Lambda表达式的话,首先需要保证您的jdk版本号在1.8之上

  Lambda表达式的普通实现如下。

复制代码
package com.demo.java8;

public class Java8Ordinary{
    public static void main(String args[]){
        //创建一个 Lambda 表达式只能用一个借口来接收
        Java8Interface j8i=(int a,int b)->{
            System.out.println(a+b);
        };
        Java8Ordinary j8o = new Java8Ordinary();
        j8o.exec(1, 2, j8i);
    }
    //此方法用来调用接口中用Lambda表达式
    private void exec(int a,int b,Java8Interface j) {
        j.option(a, b);
    }
}
/**
 * 此接口用来接收Lambda表达式,接口中只能有一个抽象方法
 * @author HYSong
 *
 */
interface Java8Interface{
    void option(int a,int b);
}
复制代码

  利用Lambda表达式实现线程

复制代码
package com.demo.java8;
/**
 * Lumbda表达式可以实现只有一个方法的接口。
 * @author HYSong
 *
 */
public class Java8Thread {
    public static void main(String[] args) {
        new Thread(()->{
            System.out.println("Thread is start");
            }) .start();
    }
}
复制代码

  利用Lambda表达式遍历集合

复制代码
package com.demo.java8;

import java.util.Arrays;
import java.util.List;

public class Java8Array {
    public static void main(String[] args) {
            //        定义一个数组
            String[] atp = {"Ray", "Zake",
                   "Danier",
                   "Bob","Rose",
                   "Lisa","Tom",
                   "Joy"};
            List<String> players =  Arrays.asList(atp);
            // 使用 lambda 表达式以及函数操作(functional operation)
            players.forEach((player) -> System.out.print(player));
    }
}
复制代码

四、总结

  虽然说jdk的版本越来越高,但是我们实际开发过程中用得到的还是以前的版本。目前一些jdk新特性用到的不是很普及。Lambda模块是jdk8的一个新特性,了解它可以简化我们的代码,方便代码的阅读。这对开发人员来说还是有帮助的。总的来说,Lambda模块定义比较模糊。实际开发中我们可以用Lambda表达式去实现一些只有一个抽象类的接口,这样可使代码更加简洁明了。

 

PS:以上内容均为个人理解。如有错误请留言纠正。

posted @   Banana_Fish  阅读(299)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· 因为Apifox不支持离线,我果断选择了Apipost!
点击右上角即可分享
微信分享提示