电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

教你在一分鐘之內理解Java Lambda表達式并學會使用

瀏覽:118日期:2022-08-11 08:35:34
目錄一、前言二、Lambda 表達式語法三、運行 Lambda 表達式示例的環境要求。四、示例1:將 Runnable 與 Lambda 表達式結合使用五、示例2:使用Lambda表達式的自定義函數接口示例六、示例3:將比較器(Comparator)與 Lambda 表達式結合使用七、示例4:使用函數接口迭代帶有 Lambda 表達式的集合八、參考文獻一、前言 Lambda表達式是java 8中包含的重要功能之一。Lambda表達式用于為由一個方法組成的接口編寫簡潔的代碼,即函數接口(functional interface)。 Lambda表達式也被用來以簡單的方式遍歷集合。 對于一個單一方法的接口,無論我們使用匿名類或內部類來實現,同樣也可以在java 8中使用Lambda表達式來實現非常簡明的代碼。 Lambda表達式定義了函數接口方法,并返回該接口的實例。二、Lambda 表達式語法

Lambda 表達式語法非常易于閱讀和理解。

Lambda 表達式語法看起來像

(Argument part) -> Body part

以下是一些例子

示例1:如果方法不需要參數,并打印消息。

() -> System.out.println('Your message');

示例2:如果方法接受兩個參數并執行一些業務邏輯并返回值。

(int a, int b) -> a+b;

方法將返回a+b的值。

示例3:如果方法接受一個參數并執行一些業務邏輯。

(String s) -> s + 'Hello World';

連接后將返回字符串。

三、運行 Lambda 表達式示例的環境要求。

JDK 8+

四、示例1:將 Runnable 與 Lambda 表達式結合使用

在下面的例子中,我們正在運行一個Runnable線程。

在lambda表達式之前,為了實現可運行線程,我們需要定義一個實現Runnable接口的類來獲得可運行對象。

現在看看如何使用lambda表達式來實現相同的對象

RunnableDemo.java

import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;public class RunnableDemo {public static void main(String[] args) {final ExecutorService exService = Executors.newSingleThreadExecutor();Runnable r = () -> System.out.println('Lambda Expression Test with Runnable');exService.execute(r); }}

輸出將是

Lambda Expression Test with Runnable

五、示例2:使用Lambda表達式的自定義函數接口示例

在這個例子中,我們將創建我們自己的函數式接口,并將了解如何將它與 lambda 表達式一起使用。

查找函數接口。

Calculator.java

package com.concretepage.lambda;public interface Calculator { public int add(int n1, int n2); }

找到主類如何使用函數接口的lambda表達式。

CalculatorDemo.java

public class CalculatorDemo { public static void main(String[] args) {Calculator cal =(int a, int b) -> a+b;int res = cal.add(5, 6);System.out.println(res); }}

輸出將是 11。

六、示例3:將比較器(Comparator)與 Lambda 表達式結合使用

現在查看 Comparator 接口如何使用 lambda 表達式對包含用戶定義對象的集合進行排序。

ComparatorDemo.java

import java.util.ArrayList;import java.util.Collections;import java.util.Comparator;import java.util.List;public class ComparatorDemo { public static void main(String[] args) {List<Student> list = new ArrayList();list.add(new Student('Ram',20));list.add(new Student('Shyam',22));list.add(new Student('Kabir',18));System.out.println('...befor sorting...');for(Student s : list){ System.out.println(s.getName());} //define comparatorComparator<Student> comp= (Student s1, Student s2) -> s1.getName().compareTo(s2.getName());Collections.sort(list, comp);System.out.println('...after sorting...');for(Student s : list){ System.out.println(s.getName());} }}

Student.java

public class Student { private String name; private int age; public Student(String name,int age){this.name = name;this.age = age; } public String getName() {return name; } public void setName(String name) {this.name = name; } public int getAge() {return age; } public void setAge(int age) {this.age = age; } }

輸出

...befor sorting...RamShyamKabir...after sorting...KabirRamShyam

七、示例4:使用函數接口迭代帶有 Lambda 表達式的集合

在 java 8 中引入了 java.util.function 包。在 java.util.function.Function API 的幫助下,我們將使用 lambda 表達式迭代集合。

在Function 接口中有apply() 方法,該方法將在用戶定義的函數中調用。

假設我們必須為自定義打印創建一個方法,那么我們將定義該方法如下。

public String customShow(Function<Student,String> fun){ return fun.apply(this);}

在 Student 類中添加上述方法以運行以下示例。

FunctionDemo.java

import java.util.ArrayList;import java.util.List;public class FunctionDemo { public static void main(String[] args) {List<Student> list = new ArrayList();list.add(new Student('Ram',20));list.add(new Student('Shyam',22));list.add(new Student('Kabir',18));for(Student st: list){ System.out.println(st.customShow(s->s.getName()+': '+s.getAge()));} }}

輸出

Ram: 20Shyam: 22Kabir: 18

八、參考文獻

【1】Lambda Expressions Java 8 Example

到此這篇關于教你在一分鐘之內理解Java Lambda表達式并學會使用的文章就介紹到這了,更多相關Java Lambda表達式內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Java
相關文章:
主站蜘蛛池模板: 超声骨密度仪-骨密度检测仪-经颅多普勒-tcd仪_南京科进实业有限公司 | 钢板仓,大型钢板仓,钢板库,大型钢板库,粉煤灰钢板仓,螺旋钢板仓,螺旋卷板仓,骨料钢板仓 | 冷水机,风冷冷水机,水冷冷水机,螺杆冷水机专业制造商-上海祝松机械有限公司 | 安德建奇火花机-阿奇夏米尔慢走丝|高维|发那科-北京杰森柏汇 | 淬火设备-钎焊机-熔炼炉-中频炉-锻造炉-感应加热电源-退火机-热处理设备-优造节能 | 天津拓展_天津团建_天津趣味运动会_天津活动策划公司-天津华天拓展培训中心 | 网站建设-高端品牌网站设计制作一站式定制_杭州APP/微信小程序开发运营-鼎易科技 | LCD3D打印机|教育|桌面|光固化|FDM3D打印机|3D打印设备-广州造维科技有限公司 | 碳化硅,氮化硅,冰晶石,绢云母,氟化铝,白刚玉,棕刚玉,石墨,铝粉,铁粉,金属硅粉,金属铝粉,氧化铝粉,硅微粉,蓝晶石,红柱石,莫来石,粉煤灰,三聚磷酸钠,六偏磷酸钠,硫酸镁-皓泉新材料 | 元拓建材集团官方网站| 板式换网器_柱式换网器_自动换网器-郑州海科熔体泵有限公司 | 铜镍-康铜-锰铜-电阻合金-NC003 - 杭州兴宇合金有限公司 | 餐饮小吃技术培训-火锅串串香培训「何小胖培训」_成都点石成金[官网] | 科普仪器菏泽市教育教学仪器总厂 | 科昊仪器超纯水机系统-可成气相液氮罐-美菱超低温冰箱-西安昊兴生物科技有限公司 | 环讯传媒,永康网络公司,永康网站建设,永康小程序开发制作,永康网站制作,武义网页设计,金华地区网站SEO优化推广 - 永康市环讯电子商务有限公司 | 金属切削液-脱水防锈油-电火花机油-抗磨液压油-深圳市雨辰宏业科技发展有限公司 | 杜甫仪器官网|实验室平行反应器|升降水浴锅|台式低温循环泵 | 液压升降货梯_导轨式升降货梯厂家_升降货梯厂家-河南东圣升降设备有限公司 | 槽钢冲孔机,槽钢三面冲,带钢冲孔机-山东兴田阳光智能装备股份有限公司 | 丽陂特官网_手机信号屏蔽器_Wifi信号干扰器厂家_学校考场工厂会议室屏蔽仪 | 查分易-成绩发送平台官网| 空气弹簧|橡胶气囊|橡胶空气弹簧-上海松夏减震器有限公司 | 广州迈驰新GMP兽药包装机首页_药品包装机_中药散剂包装机 | 北京律师咨询_知名专业北京律师事务所_免费法律咨询 | 全自动过滤器_反冲洗过滤器_自清洗过滤器_量子除垢环_量子环除垢_量子除垢 - 安士睿(北京)过滤设备有限公司 | 隐形纱窗|防护纱窗|金刚网防盗纱窗|韦柏纱窗|上海青木装潢制品有限公司|纱窗国标起草单位 | 旋片真空泵_真空泵_水环真空泵_真空机组-深圳恒才机电设备有限公司 | 艺术涂料|木纹漆施工|稻草漆厂家|马来漆|石桦奴|水泥漆|选加河南天工涂料 | 春腾云财 - 为企业提供专业财税咨询、代理记账服务 | 水压力传感器_数字压力传感器|佛山一众传感仪器有限公司|首页 | 贵州成人高考网_贵州成考网| 微动开关厂家-东莞市德沃电子科技有限公司 | 山东商品混凝土搅拌楼-环保型搅拌站-拌合站-分体仓-搅拌机厂家-天宇 | 陶瓷加热器,履带式加热器-吴江市兴达电热设备厂 | 电地暖-电采暖-发热膜-石墨烯电热膜品牌加盟-暖季地暖厂家 | 亳州网络公司 - 亳州网站制作 - 亳州网站建设 - 亳州易天科技 | 理化生实验室设备,吊装实验室设备,顶装实验室设备,实验室成套设备厂家,校园功能室设备,智慧书法教室方案 - 东莞市惠森教学设备有限公司 | 北京西风东韵品牌与包装设计公司,创造视觉销售力! | 煤棒机_增碳剂颗粒机_活性炭颗粒机_木炭粉成型机-巩义市老城振华机械厂 | 污水处理设备维修_污水处理工程改造_机械格栅_过滤设备_气浮设备_刮吸泥机_污泥浓缩罐_污水处理设备_污水处理工程-北京龙泉新禹科技有限公司 |