欢迎来到天天文库
浏览记录
ID:39340279
大小:27.96 KB
页数:8页
时间:2019-07-01
《10个Java 8 Lambda表达式经典示例》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、10个Java8Lambda表达式经典示例Java8刚于几周前发布,日期是2014年3月18日,这次开创性的发布在Java社区引发了不少讨论,并让大家感到激动。特性之一便是随同发布的lambda表达式,它将允许我们将行为传到函数里。在Java8之前,如果想将行为传入函数,仅有的选择就是匿名类,需要6行代码。而定义行为最重要的那行代码,却混在中间不够突出。Lambda表达式取代了匿名类,取消了模板,允许用函数式风格编写代码。这样有时可读性更好,表达更清晰。在Java生态系统中,函数式表达与对面向对象的全面支
2、持是个激动人心的进步。将进一步促进并行第三方库的发展,充分利用多核CPU。尽管业界需要时间来消化Java8,但我认为任何严谨的Java开发者都不应忽视此次Java发布的核心特性,即lambda表达式、函数式接口、流API、默认方法和新的Date以及TimeAPI。作为开发人员,我发现学习和掌握lambda表达式的最佳方法就是勇于尝试,尽可能多练习lambda表达式例子。鉴于受Java8发布的影响最大的是Java集合框架(JavaCollectionsframework),所以最好练习流API和lambda
3、表达式,用于对列表(Lists)和集合(Collections)数据进行提取、过滤和排序。我一直在进行关于Java8的写作,过去也曾分享过一些资源来帮助大家掌握Java8。本文分享在代码中最有用的10个lambda表达式的使用方法,这些例子都短小精悍,将帮助你快速学会lambda表达式。Java8lambda表达式示例我个人对Java8发布非常激动,尤其是lambda表达式和流API。越来越多的了解它们,我能写出更干净的代码。虽然一开始并不是这样。第一次看到用lambda表达式写出来的Java代码时,我对
4、这种神秘的语法感到非常失望,认为它们把Java搞得不可读,但我错了。花了一天时间做了一些lambda表达式和流API示例的练习后,我开心的看到了更清晰的Java代码。这有点像学习泛型,第一次见的时候我很讨厌它。我甚至继续使用老版Java1.4来处理集合,直到有一天,朋友跟我介绍了使用泛型的好处(才意识到它的好处)。所以基本立场就是,不要畏惧lambda表达式以及方法引用的神秘语法,做几次练习,从集合类中提取、过滤数据之后,你就会喜欢上它。下面让我们开启学习Java8lambda表达式的学习之旅吧,首先从简
5、单例子开始。例1、用lambda表达式实现Runnable我开始使用Java8时,首先做的就是使用lambda表达式替换匿名类,而实现Runnable接口是匿名类的最好示例。看一下Java8之前的runnable实现方法,需要4行代码,而使用lambda表达式只需要一行代码。我们在这里做了什么呢?那就是用()->{}代码块替代了整个匿名类。//Java8之前:newThread(newRunnable(){@Overridepublicvoidrun(){System.out.println("Befor
6、eJava8,toomuchcodefortoolittletodo");}}).start();//Java8方式:newThread(()->System.out.println("InJava8,Lambdaexpressionrocks!!")).start();输出:toomuchcode,fortoolittletodoLambdaexpressionrocks!!这个例子向我们展示了Java8lambda表达式的语法。你可以使用lambda写出如下代码:(params)->expressio
7、n(params)->statement(params)->{statements}例如,如果你的方法不对参数进行修改、重写,只是在控制台打印点东西的话,那么可以这样写:()->System.out.println("HelloLambdaExpressions");如果你的方法接收两个参数,那么可以写成如下这样:(inteven,intodd)->even+odd顺便提一句,通常都会把lambda表达式内部变量的名字起得短一些。这样能使代码更简短,放在同一行。所以,在上述代码中,变量名选用a、b或者x、
8、y会比even、odd要好。例2、使用Java8lambda表达式进行事件处理如果你用过SwingAPI编程,你就会记得怎样写事件监听代码。这又是一个旧版本简单匿名类的经典用例,但现在可以不这样了。你可以用lambda表达式写出更好的事件监听代码,如下所示://Java8之前:JButtonshow= newJButton("Show");show.addActionListener(newActionListener(){@
此文档下载收益归作者所有