函式式程式設計和lambda表示式

2021-10-25 00:22:45 字數 1863 閱讀 7213

一.介面的預設方法

(1)在介面中新增乙個非抽象方法只需要使用乙個default 關鍵字就可以

(2)我們把非抽象方法理解成乙個擴充套件方法,

二.函式式程式設計

1.什麼是函式式程式設計 ?一切皆函式

2.將處理問題的粒度從類變成函式,從而可以更好的滿足系統對重用性,和擴充套件性的支援

3.可以將函式作為引數傳遞給另乙個函式

4.可以簡化**的操作

5.開發速度快,易於併發程式設計,不需要考慮死鎖

6.耗費cpu

三.lambda表示式

(1)lambda表示式是一種新的語法形式,簡化了**的開發操作,由編譯器轉化為常規的**

(2)lambda表示式可以理解成函式式程式設計的體現方式

(3)lambda表示式通過表示式代替功能介面,就類似於匿名方法

(4)語法 ->稱為lambda表示式的操作符

結構: (parameters)引數列表 -> (expression|)表示式

四,使用lambda表示式對陣列進行排序

string str = ;

1.第一種方式

arrays.sort(str,(x,y) -> x.compareto(y));

2.第二種方式

arrays.sort(str,string::compareto);

五.使用lambda表示式遍歷集合

list list1 = new arraylist();

list1.add(「kadaj」);

list1.add(「dawef」);

list1.add(「daegg」);

1.正常lambda表示式	

list1.foreach((name)->system.out.println(name));

2.第二種方式 :雙冒號表示式

list1.foreach(system.out::println);

六.查詢集合中帶有某個字串的元素

例:list.foreach(item->

});七.lambda表示式對集合進行排序

list1.sort((x,y)->x.compareto(y));

八.lambda表示式的應用場景

–以內部迭代取代外部迭代

外部迭代:描述怎麼幹,只能順序處理list集合中的資料

內部迭代:描述幹什麼,不一定要順序處理list集合中的迴圈,使用foreach

–以流水線的方式處理資料:使用steam stream對集合進行包裝,通常和lambda表示式一起使用

支援很多操作:

(1)filter(過濾):list.stream().filter(p -> p.getage()>21).foreach(p -> system.out.println(p.getage()));

(2)limit(過濾): list.stream().limit(3) //獲取前三個元素

(2)sorted(排序):list.stream().sorted((p1,p2)->p1.compareto(p2))

(3)max: list.stream().max((p1,p2)->p1.getage() > p2.getage()) //獲取最大值

(4)min: person p = list.stream.min((p1,p2)-> p1.getage() < p2.getage()).get(); //獲取擁有最小年齡的物件

(5)collect: list evens = list.stream().filter(i -> i%2 ==0).collect(collectors.tolist) //返回符合條件的資料並封裝成集合

(6)sum:

(7)map:

函式式程式設計 Lambda表示式

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

函式式程式設計 lambda表示式

1.定義 是一種匿名方法。2.作用 作為引數傳遞時語法簡潔,優雅,可讀性強。隨時建立和銷毀,減少程式耦合度。3.語法 定義 變數 lambda 形參 方法體 呼叫 變數 實參 4.說明 形參沒有可以不填 方法體只能有一條語句,且不支援賦值語句。lambda 匿名函式 語法 lambda 引數 函式體...

函式式程式設計思想 Lambda表示式

lambda是jdk1.8之後的新特性,傳統的程式設計思想是物件導向的,即想呼叫乙個方法時,需要建立乙個物件,再呼叫這個物件中的方法。而函式式程式設計只要結果正確,而不在意物件是誰,方法名是誰。物件導向的程式設計會產生大量的冗餘 實現類物件,重寫方法等 而且這些冗餘 是必要的。而函式式程式設計思想,...