Lambda表示式是幹什麼的?如何使用?

2021-10-25 06:22:11 字數 1209 閱讀 3324

用來簡化過於繁瑣的編寫**的過程

冗餘指的就是多餘的

我們來看乙個例子,我們在建立執行緒的過程中,編寫的**多而複雜,如果使用lambda表示式就可以省略很多不必要的**,如下:

public

static

void

main

(string[

] args)}}

.start()

;// 簡化寫法

// 使用runnable介面建立新的程序

runnable r =

newrunnable()

}};new

thread

(r).

start()

;// 簡化寫法

// 使用runnable介面建立新的程序的另一種寫法

newthread

(new

runnable()

}}).

start()

;}

很顯然並不是我們想要區建立乙個匿名內部類來建立乙個新的執行緒,只是因為受限於物件導向的程式設計思想和語法,我們不得不區建立匿名內部類來達到我們的建立新的執行緒的目的,而我們真正想做的只是將run方法內的**傳遞給thread類。

在jdk1.8中加入了乙個很重要的新特性就是lambda表示式,為我們解決上述問題的煩惱

// 建立新執行緒的匿名內部類的寫法

newthread

(new

runnable()

}}).

start()

;// 使用lambda表示式來建立新的執行緒

newthread((

)->})

.start()

;

(引數列表) -

>

():介面中抽象方法的引數列表,沒有引數就空著,如果有引數就寫出引數,多個引數使用都好分割

->:傳遞的意思,把引數傳遞給方法體{}

{}:重寫介面抽象方法的方法體

① (引數列表):括號中引數列表的資料型別,可以省略不寫

② (引數列表):如果括號中的引數只有乙個,那麼資料型別和()都可以省略

③ :如果{}中的**只有一行,無論是否含有返回值,都可以省略{}和return和分號,但是需要注意的是,要省略的話必須要同時省略{}和return和分號

FFT是幹什麼的

fft在演算法競賽中就有乙個用途 加速多項式乘法 暴言 簡單來說,形如 a0x0 a1x1 a2x2 anxna0x0 a1x1 a2x2 anxn 的代數表示式叫做多項式,可以記作f x a0x0 a1x1 a2x2 anxnf x a0x0 a1x1 a2x2 anxn,其中a0,a1,ana0...

npm是幹什麼的

網上的 npm 教程主要都在講怎麼安裝 配置和使用 npm 卻很少告訴新人 npm 是幹什麼的?為什麼要使用 npm?今天我就來講講這個話題。本文目標讀者是 不太了解 npm 的新人 老司機請繞道。社群共享 麻煩npm的思路大概是這樣的 這些可以被使用的 被叫做 包 package 這就是 npm名...

HttpContext是幹什麼的

httpcontext 類.包括說明和如何使用.於是,上網狂搜 有網路就是好啊.這是我補充的httpcontext 類 1.生存週期 從客戶端使用者點選並產生了乙個向伺服器傳送請求開始 伺服器處理完請求並生成返回到客戶端為止.注 針對每個不同使用者的請求,伺服器都會建立乙個新的httpcontext...