jdk8 Lambda 表示式詳解

2021-08-31 07:20:00 字數 2396 閱讀 5678

lambda表示式主要是用來替換匿名內部類。必須配合函式介面一起使用。

jdk中大多數介面已經被宣告為函式介面

必須使用@functionalinte***ce宣告,並且,介面中只能有乙個抽象方法,可以有其他的預設方法(default)或靜態方法(static)

@functionalinte***ce

public

inte***ce

formula

//靜態方法

static

void

info

(int a)

}

建構函式的引數和返回值必須和函式介面預設方法的引數和返回值一致

@functionalinte***ce

public

inte***ce

formula2

}

public

class

demo1

public

static

void

main

(string[

] args)

}

這個做法實際上和匿名實現類一致

formula formula=

(a)-

>

;double d = formula.

calculate(12

);system.out.

println

(d);

靜態的引數和返回值必須和函式介面預設方法的引數和返回值一致

function

tointeger = integer:

:valueof;

function

backtostring = tointeger.

andthen

(string:

:valueof)

;backtostring.

("123");

// "123"

關於map的操作和list類似,這裡就不重複舉例了

string[

] strs =

newstring

;list

lst = arrays.

aslist

(strs)

;lst.

foreach

(s -

> system.out.

println

(s))

;//aabbcc

string[

] strs =

newstring

;list

lst = arrays.

aslist

(strs)

;lst.

foreach

(s -

> system.out.

print

(s))

;system.out.

println(""

);system.out.

println

("----------");

lst = lst.

stream()

.sorted

((a,b)

->).

collect

(collectors.

tolist()

);lst.

foreach

(s -

> system.out.

print

(s))

;//abcabc

string[

] strs =

newstring

;list

lst = arrays.

aslist

(strs)

;lst.

foreach

(s -

> system.out.

print

(s))

;system.out.

println(""

);system.out.

println

("----------");

lst = lst.

stream()

.filter

(p -

>).

collect

(collectors.

tolist()

);lst.

foreach

(s -

> system.out.

print

(s))

;//abc

JDK8 lambda表示式學習筆記

lambda表示式是jdk8引入的乙個新特性,lambda表示式是乙個匿名函式,可以把其理解為一段可以傳遞的 使用lambda表示式可以寫出更為簡潔靈活的 匿名類 匿名類是一種類似本地類 沒有名稱 的表示式,為了減少 中宣告的類的數量,它可以讓程式中的 更為簡潔,對於本地類,如果只需要使用到一次,可...

jdk8 lambda表示式的使用

runnable runnable3 system.out.println 執行了.new thread runnable3 start new thread system.out.println 執行了.start comparatorcom new comparator comparatorco...

jdk8新特性 lambda表示式

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