JDK8新特性之Lambda表示式

2022-01-20 22:21:31 字數 1450 閱讀 2978

lambda表示式主要是替換了原有匿名內部類的寫法,也就是簡化了匿名內部類的寫法。lambda語法結構:

(引數1,引數2...)->
先看乙個使用匿名內部類定義乙個新執行緒的方法:

@test

public

void

test1()

}}).start();

for(int x=0;x<100;x++)

}

使用lambda表示式則可以簡化匿名內部類的寫法:

@test

public void test2()

}).start

(); for

(int i=0;i<100;i++)

}

好吧,**是不是極大的簡化了?

再來看看乙個例子,傳統方法過濾乙個資料夾中的檔案是這樣的:

@test

public

void

test3()

});for(file f:fs)

}

使用了lambda表示式之後怎樣過濾檔案呢?

@test

public void test4());

for(file f:fs)

}

lambda表示式,既然是一種表示式,它就不是內部類,這樣編譯過後不會產生內部類,它只是內部類的另一種實現方式。

再看看給set集合排序的例子:

傳統方式是這樣的:

@test

public void test5()

});set.add("ac");

set.add("acfa");

set.add("acfadfada");

set.add("ac5423543534524");

system.out.println(set);

}

使用了lambda表示式之後呢?

@test

public void test6() );

set.add

("ac");

set.add

("acfa");

set.add

("acfadfada");

set.add

("ac5423543534524");

system.out.println

(set);

}

lambda侷限性:

1.如果介面有多個方法需要實現,就只能通過匿名內部類來實現,而不可以使用lambda表示式。

2.要使用lambda表示式的地方引數本身就是固定的,只有乙個,例如new thread(),要麼沒有引數,要麼只能是new runnable().

JDK8新特性之Lambda表示式

j a 8的乙個大亮點是引入lambda表示式,使用它設計的 會更加簡潔。當開發者在編寫lambda表示式時,也會隨之被編譯成乙個函式式介面。一行執行語句的寫法 parameters expression如果有多行執行語句,可以加上 parameters 如 public intadd int x,...

Jdk8新特性之排序

comparator提供的方法 author wgr create 2020 4 13 16 12 public class person public string getname public void setname string name public integer getage publ...

jdk8新特性 lambda表示式

1 什麼是lambda表示式?lambda表示式 也叫做閉包 是jdk8中的新語法,它允許我們將函式當成引數傳遞給某個方法或者將 本身作為資料進行處理。2 lambda表示式示例 2.1 用lambda表示式實現runnable 通過匿名內部類方法重寫runnable介面 new thread ne...