JDK8新特性之Lambda表示式

2022-09-07 15:45:29 字數 1542 閱讀 4452

j**a 8的乙個大亮點是引入lambda表示式,使用它設計的**會更加簡潔。當開發者在編寫lambda表示式時,也會隨之被編譯成乙個函式式介面。

一行執行語句的寫法:

(parameters) -> expression
如果有多行執行語句,可以加上{}

(parameters) ->
如:

public

intadd(int x, int y)

轉換成lambda表示式有以下幾種寫法:

// 指定引數型別及return

(int x, int y) ->

// 指定引數型別,不指定return

(int x, int y) -> x + y;

// 不指定引數型別和return,編譯器會自動推斷

(x, y) -> x + y;

1、只有乙個抽象方法的函式式介面

lambda表示式的目標型別是函式式介面,什麼是函式式介面之後會講。

下面拿建立執行緒來舉例,用lambda表示式可以有以下幾種寫法。

public static void main(string args) 

}).start();

runnable runnable = () -> system.out.println("t2");

new thread(runnable).start();

new thread(() -> system.out.println("t3")).start

(); new

thread

(() -> run("t4")).start

(); new

thread

(() -> ).start

();}

private

static

void

run(string str)

最後輸出:

t1t

2t3t

4t5

2、集合批量操作

下面列印list集合的兩種寫法是等價的。

list

<

string

>

list

= arrays.aslist("a","b","c");

for(string str : list)

list

.foreach((e) -> system.out.println(e));

3、流操作

下面是流查詢list集合中等於"a"的數量。

list.stream().filter

((e) -> "a".equals(e)).count

();

推薦閱讀

面經:史上最全j**a多執行緒面試題及答案

JDK8新特性之Lambda表示式

lambda表示式主要是替換了原有匿名內部類的寫法,也就是簡化了匿名內部類的寫法。lambda語法結構 引數1,引數2.先看乙個使用匿名內部類定義乙個新執行緒的方法 test public void test1 start for int x 0 x 100 x 使用lambda表示式則可以簡化匿名...

Jdk8新特性之排序

comparator提供的方法 author wgr create 2020 4 13 16 12 public class person public string getname public void setname string name public integer getage publ...

jdk8新特性 lambda表示式

1 什麼是lambda表示式?lambda表示式 也叫做閉包 是jdk8中的新語法,它允許我們將函式當成引數傳遞給某個方法或者將 本身作為資料進行處理。2 lambda表示式示例 2.1 用lambda表示式實現runnable 通過匿名內部類方法重寫runnable介面 new thread ne...