问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

java的lambda表达式应用在哪些场合

发布网友 发布时间:2022-04-29 17:46

我来回答

1个回答

热心网友 时间:2022-04-10 04:00

例1、用lambda表达式实现Runnable
我开始使用Java 8时,首先做的就是使用lambda表达式替换匿名类,而实现Runnable接口是匿名类的最好示例。看一下Java 8之前的runnable实现方法,需要4行代码,而使用lambda表达式只需要一行代码。我们在这里做了什么呢?那就是用() -> {}代码块替代了整个匿名类。
// Java 8之前:
new Thread(new Runnable() {
@Override
public void run() {
System.out.println("Before Java8, too much code for too little to do");
}
}).start();
//Java 8方式:
new Thread( () -> System.out.println("In Java8, Lambda expression rocks !!") ).start();

输出:
too much code, for too little to do
Lambda expression rocks !!

这个例子向我们展示了Java 8 lambda表达式的语法。你可以使用lambda写出如下代码:
(params) -> expression
(params) -> statement
(params) -> { statements }

例如,如果你的方法不对参数进行修改、重写,只是在控制台打印点东西的话,那么可以这样写:
() -> System.out.println("Hello Lambda Expressions");

如果你的方法接收两个参数,那么可以写成如下这样:
(int even, int odd) -> even + odd

顺便提一句,通常都会把lambda表达式内部变量的名字起得短一些。这样能使代码更简短,放在同一行。所以,在上述代码中,变量名选用a、b或者x、y会比even、odd要好。
例2、使用Java 8 lambda表达式进行事件处理
如果你用过Swing API编程,你就会记得怎样写事件监听代码。这又是一个旧版本简单匿名类的经典用例,但现在可以不这样了。你可以用lambda表达式写出更好的事件监听代码,如下所示:
// Java 8之前:
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");
});

Java开发者经常使用匿名类的另一个地方是为 Collections.sort() 定制 Comparator。在Java 8中,你可以用更可读的lambda表达式换掉丑陋的匿名类。我把这个留做练习,应该不难,可以按照我在使用lambda表达式实现 Runnable 和 ActionListener 的过程中的套路来做。
例3、使用lambda表达式对列表进行迭代
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
用六个成语各造一段话 关于把握机会的名言名句 关于把握住机会的名言名句(把握机会,成就未来) 关于把握机会的名言名句(把握机会的励志句子) 关于机会的名言名句篇一 包括“机遇”的名言名句(一) BPM中国普及之路还有多远? 哪个公司可以做OA系统 目前业内有很多人认为OA现在某些应用或者说功能在向BPM领域延生,请问... ting的三个声调组词 中国保险业制度变迁 Java中的lambda表达式 java中的lambda表达式是什么? 京广快递是什么快递? 京广快递怎么样 新中国的保险发展趋势 新中国保险发展历程 洛阳家常杂酱面怎样做 内画鼻烟壶是怎么回事 请给一篇关于符合以下要求的文章,最好原创,今天就要,最少600字。_百度... 炸酱面的做法 最好是老北京的 还有就是麻酱面 爆肚 中国油画在世界上是最差的吗?中国油画家在世界上有哪些代表人物? 榨酱面怎么做 初中孩子一周的营养菜谱 早餐吃鹅蛋配什么粥比较好 附近有什么好玩的地方吗 南瓜小米粥能和香椿炒鹅蛋一起吃吗 炸酱面怎么做呀!东北的 卖鹅蛋的味道不好吃吗,为何很少有卖鹅蛋的呢? 吃鹅蛋可以喝小米南瓜粥吗? java lambda表达式是什么? java lambda是做什么用的 京广速递怎么样?快吗? Lambda表达式的Java表达式 java中lambda表达式怎样实现一个多方法的接口呢 java8 lambda 表达式是个什么 java lambda有什么用 java lambda表达式如何使用2个参数. 解释下这个语法 java lamda表达式吗 看不懂? Java 8为什么需要Lambda表达式 java lambda表达式优缺点 java一道lambda表达式题 分频器如何固定? 中国银行代发工资是什么 瑞纳音响分频器怎么安装怎么固定住 银行代发工资属于什么结算方式? 0基础怎么学健康管理师 汽车音响分频器用什么材料固定 我在网上购买了一对高低音二分频的分频器,分频器该安装到音箱的哪个位置?分频器比较重,一只有三斤多。 汽车喇叭分频器安装在哪里好