1.過濾
//過濾出年齡大於30的使用者
listreslutlist=userlist.stream().filter(user -> (user.getage()>=30)).collect(collectors.tolist());
2.分組
//根據使用者性別分組
map> resultmap=
userlist.stream().collect(collectors.groupingby(user->user.get***()));
//根據性別分組,再根據年齡分組
map>> groupmap = list.stream().collect(collectors.groupingby(t -> t.get***(), collectors.groupingby(t -> t.getage())));
3.排序
//根據使用者id降序
listreslutlist = list.stream().sorted((a, b) -> a.getid() - b.getid()).collect(collectors.tolist());
4.去重
//方式一:根據id去重
listreslutlist = userlist.stream().collect(collectors.collectingandthen(collectors.tocollection(()->new treeset<>(comparator.comparing(o->o.getid()))),arraylist::new));
//方式二:去重,需要注意的是要先重寫物件user的equals和hashcode方法
listreslutlist = userlist.stream().distinct().collect(collectors.tolist());
5.物件集合,轉其他型別集合
//獲取使用者名稱集合
listreslutlist = userlist.stream().map(t -> t.getname()).collect(collectors.tolist());
6.sum求和
//獲取年齡總和
int count = userlist.stream().maptoint(t -> t.getage()).sum();
7.list轉map
mapmap=list.stream().collect(collectors.tomap(terminalex::getterminal,o->o,(o1,o2)->o1));
JAVA8新特性Stream學習中
stream是資料渠道,用於運算元據源 集合,陣列等 所生成的元素序列。集合講的是資料,流講的是計算 注 stream自己不會儲存元素 stream不會改變源物件。相反,他們會返回乙個持有結果的新的stream stream操作是延遲執行的。這意味著他們會等到需要結果的時候才執行。步驟 建立stre...
java8新特性之一lambda
lambda結合函式式介面使用,函式式介面 functional inte ce 就是乙個有且僅有乙個抽象方法,但是可以有多個非抽象方法的介面。1 可選型別宣告 不需要宣告引數型別,即直接可以寫引數,不需要宣告型別,編譯器可以自動識別型別 2 可選的引數圓括號 乙個引數可以不要圓括號,多個引數需要圓...
Java8 新特性 方法引用 一
package cn.com.zq.demo03.reference.test03.reference 方法引用 練習 使用系統已經存在的 方法 進行引用 為什麼要有方法引用?主要是對lambda表示式的優化 當 中 已經存在 對應的類 對應的物件 對應的this 對應的super 的時候 我們可以...