Lambda和Stream流 Lambda表示式

2021-10-18 23:15:14 字數 2212 閱讀 1840

內部類根據在類中的位置不同分為三種

1. 成員內部類: 在類的成員位置

2. 區域性內部類: 在方法中

3. 匿名內部類: 在方法中,是一種簡化的寫法

public

class

outer

}}

public

class

demo1

}

區域性內部類是定義在方法中的類,只能在方法中使用,侷限性很強。所以一般不會使用。

public

class

outer

}new

inner()

.inshow()

;}}

匿名內部類實際開發的時候還是使用的特別多的

1.前提: 需要有乙個介面或者抽象類

2.格式:

new 介面/抽象類()

3.本質:匿名內部類本質上是乙個抽象類/介面的子類物件

public

inte***ce

usb

public

class

computer

}

public

class

demo2

@override

public

void

loaddriver()

@override

public

void

run()}

);}}

lambda表示式是函式式程式設計的一種體現,它可以簡化匿名內部類的**書寫。

lamdba表示式的使用步驟

1.必須要有乙個函式式介面

當介面中只有乙個抽象方法,這樣的介面叫做函式式介面

2.有乙個方法,把函式式介面作為引數

3.呼叫方法,傳遞lambda表示式作為函式式介面的實現方式。

lambda表示式案例

//1.定義乙個函式式介面,只有乙個抽象方法

@functionalinte***ce

public

inte***ce

animal

public

class

demo3})

;//lambda標準規格

method

((string food)

->);

//lambda省略資料型別

method

((food)

->);

//lambda省略小括號,引數只乙個的情況下

method

(food -

>);

//lambda省略小括號,引數只乙個的情況下

//lambda省略大括號,方法體只有一條語句

method

(food -

> system.out.

println

("狗在吃"

+ food));

}//2.把介面作為方法的引數

public

static

void

method

(animal a)

}

lambda表示式的格式

1.標準格式:

(資料型別1 引數1

, 資料型別2 引數1)-

>

2.省略資料型別

(引數1

, 引數1)-

>

3.引數只有乙個時,可以省略(

) 引數 -

>

3.當語句體只有一條語句時,可以省略

引數 -

> 語句體

public

inte***ce

inter

//jdk8之後,允許在介面中寫靜態方法

public

static

void

show3()

//jdk9之後,允許在介面中寫私有方法

private

void

show4()

}

Lambda和Stream流知識點

一 函式式介面,滿足條件 函式式介面 functionalinte ce public inte ce functioninte ce 二 引數的傳遞public void test 三 編寫特性 public void test collect collectors.joining system....

Lambda 函式式介面 Stream流 序列化

函式程式設計思想 1 不使用lambda 需要定義類 建立物件 2 使用lambda 不需要定義類,不需要建立物件。lambda相對於物件導向程式設計的優勢 寫法簡單,可讀性強。預設規則 1 形參相關 形參的資料型別都可以省略。2 形參相關 如果形參只有乙個,可以同時省略 資料型別 一對小括號。注 ...

關於stream 和lambda使用

這幾天看專案用到了這些,總結學習一下 先生成測試資料 liststudents new arraylist students.add student.builder name wyp id 1l age 21 男 build students.add student.builder name wj ...