lambda表示式與函式式介面(一)

2021-10-08 01:57:04 字數 2816 閱讀 8076

概念

/**

* 函式式介面

* * @author zhuhuix

* @date 2020-07-12

*/@functionalinte***ce

public

inte***ce

functioninte***ce

}

函式式程式設計

案例1:使用函式式介面做為引數

/**

* 使用lambda表示式重寫函式式介面中的抽象方法

* * @author zhuhuix

* @date 2020-07-12

*/public

class

functioninte***celambda

public

static

void

main

(string[

] args)

}

案例2:使用函式式介面做為返回值
/**

* 函式式程式設計->人員類

* * @author zhuhuix

* @date 2020-07-11

*/public

class

person

public

person

(string name,

int age)

public string getname()

public

void

setname

(string name)

public

intgetage()

public

void

setage

(int age)

@override

public string tostring()

';}}

/** * 函式式程式設計->lambda有引數有返回值例子

* * @author zhuhuix

* @date 2020-07-11

*/public

class

personarrays

;// 通過使用comparator函式式介面進行年齡大小比較實現陣列的排序

arrays.

sort

(personarray, comparator.

comparingint

(person:

:getage));

//遍歷person陣列

for(

int i =

0; i < personarray.length; i++)}

}

/**

* accepts a function that extracts an sort key from a type

* , and returns a that compares by that

* sort key.

** the returned comparator is serializable if the specified function

* is also serializable.

** @param the type of element to be compared

* @param keyextractor the function used to extract the integer sort key

* @return a comparator that compares by an extracted key

* @see #comparing(function)

* @throws nullpointerexception if the argument is null

* @since 1.8

*/public

static

comparator

comparingint

(tointfunction<

?super t> keyextractor)

jdk中常用的函式式介面

supplier介面

@functionalinte***ce

public

inte***ce

supplier

/**

* 函式式程式設計--常用函式式介面

* * @author zhuhuix

* @date 2020-07-11

*/public

class

functioninte***cedemo2

public

static

void

main

(string[

] args)

}

consumer介面
@functionalinte***ce

public

inte***ce

consumer

/**

* 函式式程式設計--常用函式式介面

* * @author zhuhuix

* @date 2020-07-11

*/public

class

functioninte***cedemo2

public

static

void

main

(string[

] args)

}

Lambda 表示式 與 函式式介面

lambda 表示式,也可稱為閉包,是乙個匿名函式 語法 parameters 將引數和實現分開 parameters 引數列表。引數型別可省略 只有乙個引數 可省略 引數名稱不允許與外層區域性變數相同。函式的具體實現。只有一行語句 可省略,return不用寫。只能引用標記了 final 的外層區域...

Lambda表示式2 函式式介面

只包含乙個抽象方法的介面,成為函式式介面。可以通過lambda表示式來建立該介面的物件。可以在任意函式式介面使用 functionalinte ce註解,可以檢查其是否是乙個函式式介面。functionalinte ce public inte ce test1 作為引數傳遞的lambda表示式 作...

函式式程式設計 Lambda表示式

1。不包含引數 runnable runnable system.out.println helloworld 只包含乙個引數 actionlistener actionlistener event system.out.println click 主體可以是一段 runnable runnable...