java lamda表达式

java lamda表达式lamda的语法:以逗号分隔,以()关闭的形参:(o1,o2) 箭头标记:-> 主体部分则是一个单表达式或者声明代码块。如下是单表达式形式:Integer.compare(m.getWeight(),n.getWeight())大致就是(参数x1,x2…..xn)–>{代码块}使用场景1:用lambda表达式实现Runnable//jav…

大家好,又见面了,我是你们的朋友全栈君。

 lamda的语法:

  • 以逗号分隔,以()关闭的形参:(o1, o2)
  • 箭头标记:->
  • 主体部分则是一个单表达式或者声明代码块。如下是单表达式形式:Integer.compare(m.getWeight(), n.getWeight())

大致就是(参数x1,x2…..xn)–> { 代码块 }    

使用场景1:用lambda表达式实现Runnable

//java1.8之前
new Thread(new Runnable() {
    @Override
    public void run() {
    System.out.println("Before Java8, too much code for too little to do");
    }
}).start();

//java 1.8之后

new Thread( () -> System.out.println("In Java8, Lambda expression rocks !!") ).start();

使用场景2: lambda表达式进行事件处理

JButton show =  new JButton(“Show”);
show.addActionListener(new ActionListener() {

    @Override
    public void actionPerformed(ActionEvent e) {

    System.out.println(“Event handling without lambda expression is boring”);
    }
});

// Java 8方式:
show.addActionListener((e) -> {

    System.out.println(“Light, Camera, Action !! Lambda expressions Rocks”);
});

 使用场景3:forEach 的使用

List<Person> personList = new ArrayList<>();
personList.add(new Person("yang","cai"));
personList.add(new Person("yang","fen"));
personList.add(new Person("yang","feng"));
//java 1.8之前
for(Person p : personList){ System.out.println(p.getFirstName() }
//java 1.8
personList.forEach(x->System.out.println(x.getFirstName()));

使用场景4:Supplier,Predicate,Comparator,Function,Consumer等接口的使用,见java函数式编程之五个基本接口 

使用场景5:在Java stream中的使用,其实也是场景4的使用,下一节讲 java stream学习讲到

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/141823.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • WinRAR 6.0 永久去除广告

    WinRAR 6.0 永久去除广告风吹起了从前,看着天边似在眼前,万般流连~

    2022年5月15日
    41
  • mean shift应用_使用Google地图制作MEAN应用(第二部分)

    mean shift应用_使用Google地图制作MEAN应用(第二部分)meanshift应用介绍(Introduction)Welcomeback!欢迎回来!Lasttime,wecreatedanapplicationthatintegratedGoogleMapsdirectlyintotheMEANstack.Theappprovidedusapaneltocreateusers,tagthe…

    2022年5月15日
    37
  • docker项目经验_如何培育与指导部署

    docker项目经验_如何培育与指导部署每个人的前半生,都在不停地做加法。可到了后半生,我们就要学会不断地做减法。目录前置工作1、需要准备的东西2、连接云服务器安装Docker环境1、安装Docker的依赖库。2、添加DockerCE的软件源信息。3、安装DockerCE。4、启动Docker服务。准备Dockerfile并部署项目(构建新的业务镜像)1、准备nginx.conf.template、Dockerfile、dist(前端项目build后的包)2、部署项目知识点(需要…

    2022年10月19日
    4
  • datax(23):dataX调优[通俗易懂]

    datax(23):dataX调优[通俗易懂]调优前需要先知道datax任务的执行过程;一、调优方向网络本身的带宽等硬件因素造成的影响;DataX本身的参数;即当觉得DataX传输速度慢时,需要从上述两个个方面着手开始排查。二、网络本身的带宽等硬件因素造成的影响此部分主要需要了解网络本身的情况,即从源端到目的端的带宽是多少(实际带宽计算公式),平时使用量和繁忙程度的情况,从而分析是否是本部分造成的速度缓慢。以下提供几个思路。1,可使用从源端到目的端scp,pythonhttp,nethogs等观察实际网络及网卡速度;2,结合.

    2022年5月13日
    141
  • 从“做事用人”到“用人做事”[通俗易懂]

    从“做事用人”到“用人做事”[通俗易懂]阿里张勇:从“做事用人”到“用人做事”商业管理今年十一月底,阿里巴巴进行了一年一度的组织架构调整,在这次调整中,阿里云升级成为阿里云智能;天猫升级为“大天猫”,并形成了三个事业群。12月时,阿里巴巴集团CEO张勇,在阿里青年干部培训营上,谈了他对这次组织架构升级的思考。36氪发表了张勇的讲话全文,我们从中为你选取了他的5个观点。第一,从“做事用人”到“用人做事”。这是马云给张勇的…

    2025年6月16日
    6
  • vue项目刷新当前页面的方法

    vue项目刷新当前页面的方法尝试了几种刷新页面的方法,比如1、浏览器直接刷新(会出现短暂的白页面现象)2、设置一个空白页面,需要刷新的时候跳转到空页面再从空页面跳回来(些许麻烦)3、使用provide/inject(目前觉得最实用,主讲此方法)…

    2022年8月31日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号