java8 Lambda表示式的使用

2021-09-10 21:09:01 字數 1594 閱讀 4926

lambda表示式表達更為簡潔,但是效率並不比原來高,多用於多執行緒中簡化頻繁使用的匿名內部類函式。lambda表示式並非所有場景都適用。

下面介紹lambda的使用,首先定義乙個介面:

inte***ce

ilike

作為比較,首先先介紹其他的方式實現介面,首先建乙個測試類,其中分別實現介面:

public

class

lambdatest_1

}public

static

void

main

(string[

] args)

} ilike like3 =

newlike3()

; like3.

lambda()

;//匿名內部類

ilike like4 =

newilike()

};like4.

lambda()

;}}inte***ce

ilike

/** * 外部類

*/class

like

implements

ilike

}

實現了常見的幾種介面實現方式並呼叫了介面方法,這裡看到匿名內部類,我們通過匿名內部類來引出我們的lambda表示式簡化匿名內部類:

//匿名內部類

ilike like4 =

newilike()

};like4.

lambda()

;//簡化為lambda表示式

ilike like5 =()

->

; like5.

lambda()

;

看到lambda表示式省略了new ilike,直接表達為()->,括號裡面也省略了重寫方法的方法名,直接寫實現的方法體。可以得出,lambda對只有乙個內部方法的介面進行簡化,使得**更簡潔可觀。

當然,lambda也能傳遞引數:

inte***ce

ilove

/** * lambda表示式

*/ilove love5 =

(a)-

>

;/**

* 最簡化的形態,引數只有乙個,可以省略引數括號,

* 實現方法語句只有一句時省略大括號,個人認為沒必要,保持上面的一般寫法就行了。

*/ilove love6 = a -

> a;

lambda用於執行緒
new

thread((

)->).

start()

;//多執行緒使用lambda表示式

newthread((

)-> system.out.

println

("努力學習,天天向上"))

.start()

;

lambda表達就介紹這麼多,其實並不複雜,實在不能一步到位,可以先參照最上面,先用其他方式實現介面,然後一步步的對比簡化,最後就得到了lambda表示式的書寫。

Java 8 Lambda表示式 方法引用

方法引用讓你可以重複使用現有的方法定義,並向lambda一樣傳遞它們。在一些情況下,比起使用lambda表示式,它們似乎更易讀,感覺也更自然。方法引用可以被看作僅僅呼叫特定方法的lambda的一種快捷寫法。它的基本思想是,如果乙個lambda代表的只是 直接呼叫這個方法 那最好還是用名稱來呼叫它,而...

java8 lambda表示式方法引用

比圖integer intvalue,作為函式傳遞。這就是方法引用 當使用function作為方法引數時,如下 public r map functionfunction 呼叫該方法的時候,傳遞的是integer.intvalue的方法引用,如下 lambdatestlambdatest new l...

Java8之Lambda表示式

intstream.range 1000,10000 filter v v 1000 v 1000 v 1000 v 100 v 100 v 100 v 10 v 10 v 10 v foreach system.out println 上面的表示式中多處用到lamnda表示式以及stream ap...