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)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Java源碼難點(diǎn)突破Lambda表達(dá)式執(zhí)行原理
- java常用Lambda表達(dá)式使用場(chǎng)景源碼示例
- Java中的反射,枚舉及l(fā)ambda表達(dá)式的使用詳解
- Java中l(wèi)ambda表達(dá)式實(shí)現(xiàn)aop切面功能
- Java8中Lambda表達(dá)式的理解與應(yīng)用
- JAVALambda表達(dá)式與函數(shù)式接口詳解
- Java Lambda表達(dá)式超詳細(xì)介紹
- 詳解Java8如何使用Lambda表達(dá)式進(jìn)行比較
- Java8?lambda表達(dá)式的10個(gè)實(shí)例講解
相關(guān)文章
Java代碼實(shí)現(xiàn)對(duì)properties文件有序的讀寫的示例
本篇文章主要介紹了Java代碼實(shí)現(xiàn)對(duì)properties文件有序的讀寫的示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-11-11
SpringBoot之使用Redis實(shí)現(xiàn)分布式鎖(秒殺系統(tǒng))
這篇文章主要介紹了SpringBoot之使用Redis實(shí)現(xiàn)分布式鎖(秒殺系統(tǒng)),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04
java性能優(yōu)化之編譯器版本與平臺(tái)對(duì)應(yīng)關(guān)系
這篇文章主要介紹了java性能優(yōu)化--編譯器版本與平臺(tái)對(duì)應(yīng)關(guān)系,本章節(jié)更加具體化的學(xué)習(xí)編譯器還有哪些可以優(yōu)化的方便,讓你的應(yīng)用展現(xiàn)出更好的性能,需要的朋友可以參考下2022-06-06
深入淺析SPI機(jī)制在JDK與Spring?Boot中的應(yīng)用
SPI是一種使軟件框架或庫更加模塊化、可擴(kuò)展和可維護(hù)的有效方法。通過遵循“開閉原則”,?SPI?確保了系統(tǒng)的穩(wěn)定性和靈活性,從而滿足了不斷變化的業(yè)務(wù)需求,這篇文章主要介紹了SPI機(jī)制在JDK與Spring?Boot中的應(yīng)用,需要的朋友可以參考下2023-09-09
SpringBoot實(shí)現(xiàn)發(fā)送QQ郵件的示例代碼
這篇文章主要介紹了SpringBoot如何實(shí)現(xiàn)發(fā)送QQ郵件功能,本文通過實(shí)例圖文相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-09-09
Java由淺入深細(xì)數(shù)數(shù)組的操作上
數(shù)組對(duì)于每一門編程語言來說都是重要的數(shù)據(jù)結(jié)構(gòu)之一,當(dāng)然不同語言對(duì)數(shù)組的實(shí)現(xiàn)及處理也不盡相同。Java?語言中提供的數(shù)組是用來存儲(chǔ)固定大小的同類型元素2022-04-04
java實(shí)現(xiàn)人員信息管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)人員信息管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-02-02

