Java中l(wèi)ambda表達(dá)式的基本運(yùn)用
一、實(shí)現(xiàn)接口
調(diào)用一個(gè)接口中的方法,傳統(tǒng)方法:
接口類A:
package lombda; /** * @author yeqv * @program A2 * @Classname A * @Date 2022/1/25 20:38 * @Email w16638771062@163.com */ public interface A { int po(int i); }
實(shí)現(xiàn)接口:
package lombda; /** * @author yeqv * @program A2 * @Classname B * @Date 2022/1/25 20:43 * @Email w16638771062@163.com */ public class B implements A { public int po(int i) { return i * i; } }
調(diào)用接口中的方法po()
package lombda; /** * @author yeqv * @program A2 * @Classname LB1 * @Date 2022/1/25 20:35 * @Email w16638771062@163.com */ public class LB1 { public static void main(String[] args) { A ab = new B(); System.out.println(ab.po(5)); } }
運(yùn)用lambda表達(dá)式后的代碼可以直接調(diào)用接口A中的方法,不用再創(chuàng)建個(gè)類實(shí)現(xiàn)接口。
package lombda; /** * @author yeqv * @program A2 * @Classname LB1 * @Date 2022/1/25 20:35 * @Email w16638771062@163.com */ public class LB1 { public static void main(String[] args) { var ab = (A) x -> x * x; System.out.println(ab.po(5)); } }
二、數(shù)字排序
package lombda; import java.util.Arrays; import java.util.Random; /** * @author yeqv * @program A2 * @Classname LB1 * @Date 2022/1/25 20:35 * @Email w16638771062@163.com */ public class LB1 { public static void main(String[] args) { //定義數(shù)組 Integer[] integers = new Integer[]{1, 23, 6, 8, 2, 3}; System.out.println(Arrays.toString(integers)); //正序排序 Arrays.sort(integers); System.out.println(Arrays.toString(integers)); //逆序排序 Arrays.sort(integers, (a, b) -> b - a); System.out.println(Arrays.toString(integers)); //亂序排序 Random random = new Random(); Arrays.sort(integers, (a, b) -> random.nextBoolean() ? 1 : -1); System.out.println(Arrays.toString(integers)); } }
三、字符串排序方法
package lombda; import java.util.Arrays; import java.util.Random; /** * @author yeqv * @program A2 * @Classname LB1 * @Date 2022/1/25 20:35 * @Email w16638771062@163.com */ public class LB1 { public static void main(String[] args) { /* //定義數(shù)組 Integer[] integers = new Integer[]{1, 23, 6, 8, 2, 3}; System.out.println(Arrays.toString(integers)); //正序排序 Arrays.sort(integers); System.out.println(Arrays.toString(integers)); //逆序排序 Arrays.sort(integers, (a, b) -> b - a); System.out.println(Arrays.toString(integers)); //亂序排序 Random random = new Random(); Arrays.sort(integers, (a, b) -> random.nextBoolean() ? 1 : -1); System.out.println(Arrays.toString(integers));*/ //定義字符串?dāng)?shù)組 String[] strings = new String[]{"asd", "rtyuj", "vgj", "bdf"}; System.out.println(Arrays.toString(strings)); //正序 Arrays.sort(strings, (a, b) -> a.compareTo(b)); System.out.println(Arrays.toString(strings)); //逆序 Arrays.sort(strings, (a, b) -> b.compareTo(a)); System.out.println(Arrays.toString(strings)); //亂序 Random random = new Random(); Arrays.sort(strings, (a, b) -> random.nextBoolean() ? 1 : -1); System.out.println(Arrays.toString(strings)); } }
四、對(duì)象排序
先建立個(gè)User類
package lombda; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; /** * @author yeqv * @program A2 * @Classname User * @Date 2022/1/25 21:26 * @Email w16638771062@163.com */ @Data @AllArgsConstructor @NoArgsConstructor public class User { private int id; private String name; }
再進(jìn)行排序
package lombda; import java.util.ArrayList; import java.util.List; /** * @author yeqv * @program A2 * @Classname LB2 * @Date 2022/1/25 21:27 * @Email w16638771062@163.com */ public class LB2 { public static void main(String[] args) { //定義一個(gè)集合 List<User> list = new ArrayList<User>(List.of(new User(1, "張三"), new User(5, "張四"), new User(2, "張五"), new User(3, "張六"))); //以u(píng)ser對(duì)象的id來排序 list.sort((a, b) -> a.getId() - b.getId()); System.out.println(list); } }
總結(jié)
到此這篇關(guān)于Java中l(wèi)ambda表達(dá)式的基本運(yùn)用的文章就介紹到這了,更多相關(guān)Java lambda表達(dá)式內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Spring使用aop切面編程時(shí)要給那些類加注解的實(shí)例
在使用切面編程時(shí),通常需要為以下類或組件添加注解來標(biāo)識(shí)它們,以便 Spring 或其他切面框架能夠正確識(shí)別和處理它們,這篇文章主要介紹了Spring使用aop切面編程時(shí)要給那些類加注解,需要的朋友可以參考下2023-11-11java中你的項(xiàng)目應(yīng)該如何正確分層
這篇文章主要介紹了java中你的項(xiàng)目應(yīng)該如何正確分層,業(yè)務(wù)分層對(duì)于代碼規(guī)范是比較重要,決定著以后的代碼是否可復(fù)用,感興趣的可以了解一下2021-04-04關(guān)于SpringBoot啟動(dòng)速度慢的原因總結(jié)
這篇文章主要介紹了關(guān)于SpringBoot啟動(dòng)速度慢的原因總結(jié),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-05-05Java描述數(shù)據(jù)結(jié)構(gòu)學(xué)習(xí)之鏈表的增刪改查詳解
這篇文章主要給大家介紹了關(guān)于Java描述數(shù)據(jù)結(jié)構(gòu)學(xué)習(xí)之鏈表的增刪改查的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-05-05java 實(shí)現(xiàn)當(dāng)前時(shí)間加減30分鐘的時(shí)間代碼
這篇文章主要介紹了java 實(shí)現(xiàn)當(dāng)前時(shí)間加減30分鐘的時(shí)間代碼,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-08-08java利用CountDownLatch實(shí)現(xiàn)并行計(jì)算
這篇文章主要介紹了java利用CountDownLatch實(shí)現(xiàn)并行計(jì)算,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-10-10將java普通項(xiàng)目打包成exe可執(zhí)行文件的步驟記錄
將JAVA代碼打包為exe文件,會(huì)讓程序運(yùn)行更加方便,這篇文章主要給大家介紹了關(guān)于將java普通項(xiàng)目打包成exe可執(zhí)行文件的相關(guān)資料,需要的朋友可以參考下2021-07-07Java8新特性時(shí)間日期庫DateTime API及示例詳解
這篇文章主要介紹了Java8新特性時(shí)間日期庫DateTime API及示例詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10