Lambda簡單使用

2021-09-29 15:53:50 字數 2588 閱讀 3363

/**

* 所有想要具有比較功能的類,都建議實現這個介面 comparable 此介面強行對實現它的每個類的物件進行整體排序。這種排序被稱為類的自然排序,類的

* compareto 方法被稱為它的自然比較方法。

* */

public

class

hero

implements

comparable

public

void

setvcname

(string vcname)

public

float

getflohp()

public

void

setflohp

(float flohp)

public

intgetintdamage()

public

void

setintdamage

(int intdamage)

public

hero()

public

hero

(string vcname)

public

hero

(string vcname,

float flohp,

int intdamage)

/** * compareto(t o) 比較此物件與指定物件的順序。o為要比較的物件

* */

@override

public

intcompareto

(hero anotherhero)

@override

public string tostring()

public

inte***ce

herocheck

/**

*與匿名類相比,lambda就是匿名方法

*弊端:

* 1。可讀性差,lambda一旦變長,就難以理解

* 2. 不便於除錯,很難在lambda表示式中增加除錯資訊,比如日誌

* 3.版本支援,lambda在jdk8才支援,

* *不適合用在複雜的業務中

* */

public

class

testlambda

system.out.

println

("初始化後的集合:");

system.out.

println

(heros)

;// system.out.println("篩選出 hp>100 && damage<50 的英雄");

// filter(heros);

// system.out.println("使用匿名內部類的方式,篩選出 hp>100 && damage<50 的英雄");

// herocheck herocheck = new herocheck()

// };

// filter(heros, herocheck);

//從匿名內部類演化成lambda表示式

//只保留方法引數和方法體,引數和方法體之間加上符號

herocheck c2 =

(hero hero)

->

;//把return和{}去掉

herocheck c3 =

(hero hero)

->hero.

getflohp()

>

100&& hero.

getintdamage()

<50;

//把引數型別和圓括號去掉(只有乙個引數時,才可以去掉圓括號)

herocheck c4 = hero -

> hero.

getflohp()

>

100&& hero.

getintdamage()

<50;

//把c4作為引數傳遞進去

filter

(heros, c4)

;//直接把表示式代進去

filter

(heros, hero -

> hero.

getflohp()

>

100&& hero.

getintdamage()

<50)

;// system.out.println("使用lambda的方式:篩選出 hp>100 && damage<50 的英雄 ");

// filter(heros, hero->hero.getflohp() > 100 && hero.getintdamage() < 50);

}//使用匿名內部類的方式

private

static

void

filter

(list

heros, herocheck herocheck)}}

// private static void filter(listheros)

// }

// }

}

Lambda省略格式 Lambda使用前

lambda表示式 是可推導,可省略的 可省略內容 1.引數列表 括號中的引數列表的資料型別,可以省略不寫 2.引數列表 括號中的引數如果只有乙個,那麼型別和 都可以省略 3.一些 如果 中的 只有一行,無論是否有返回值,都可以省略 return,注意 要省略三個一起省略 1.invokecook ...

lambda入門使用

lambda表示式,其實本質來講,就是乙個匿名函式。因此在寫lambda表示式的時候,不需要關心方法名是什麼。實際上,我們在寫lambda表示式的時候,也不需要關心返回值型別。我們在寫lambda表示式的時候,只需要關注兩部分內容即可 引數列表和方法體 public class syntax lam...

Python 使用 lambda 函式

python 支援一種有趣的語法,它允許你快速定義單行的最小函式。這些叫做 lambda 的函式,是從 lisp 借用來的,可以用在任何需要函式的地方。1.lambda 函式介紹 def f x return x 2 f 3 6 g lambda x x 2 1 g 3 6 lambda x x 2...