關於jdk1 8的lamda表示式的常用規則二

2021-10-08 08:00:14 字數 932 閱讀 5033

1.利用lambda表示式把乙個list中的物件中的某乙個元素按照某個型別進行排序

為什麼要這樣寫?再開發中有這樣一種情況,後端返給前端的資料中,數值型的資料往往在實體物件中存的型別是string,如果直接用lambda表示式對這個string進行排序 結果是錯的 ,比如說有兩個string a=99.9 b=988.2,如果降序的話 結果是99.9在前 因為string比較的不是整體數值 而是一位一位的由左向右比較 所以需要先把string轉換成bigdecimal或者其他型別進行比較 寫法有兩種:

第一種寫法:構造比較器法

注意:如果想要倒敘 只需要把a和b的位置顛倒即可

rowlist = list.stream().sorted((a,b)->

new bigdecimal(b.getprice()).compareto(new bigdecimal(a.getprice()))).collect(collectors.tolist());

第二種寫法:直接在comparing中構造匿名函式

注意:這種方式只能正序 如果加上revered()倒敘就不對了 倒敘需要按照第一種方式來寫

rowlist = list.stream().sorted(comparator.comparing(a->new bigdecimal(a.price()))).collect(collectors.tolist());

2獲取乙個list物件中的某乙個元素的最大最小值的物件

string title = entryuserlist.stream().max(comparator.comparing(potentialanalysisranking::getcreatetime))

.get()//這一步是獲取最大值的物件

.gettitle(); //這一步是獲取這個物件的某個元素

關於 JDK1 7 和 JDK1 8 的區別

jdk1.8 在 jdk1.7的基礎上新增了如下功能 1 default關鍵字 實現的介面中如果有 default 修飾的方法,實現類可以不重寫此方法 2 lambda 表示式,函式式程式設計,函式式程式設計就是一種抽象程度很高的程式設計正規化,對一些只使用一次的介面的編碼進行了優化 3 函式式介面...

JDK1 8之Lambda表示式

lambda表示式是jdk1.8重要特性之一,其作用是可以減少匿名內部類的使用,使 更加簡潔。並不是所有的介面都可以用lambda表示式,要求介面必須是函式式介面,即介面有且只能有乙個抽象方法,但是可以有多個非抽象方法。jdk 1.8 之前已有的函式式介面 jdk 1.8 新增加的函式介面 publ...

jdk1 8常用總結

1.查詢集合裡的第乙個物件 filter 例 查詢listlist 中username為小明的物件t list.stream filter findfirst 1 list.stream filter e 小明 equals e.getusername findfirst 2.查詢滿足條件的物件,並...