1,foreach
this.quoteitemlist.foreach(p -> p.setmode(mode));
2,獲取對話屬性,去重後生成集合
listprojects = this.quoteitemlist.stream().map(p -> p.getversion()).distinct().collect(collectors.tolist());
3,過濾後彙總
double totalrealmanday = this.quoteitemlist.stream().filter(p ->p.getassignee().equals(person.getname())).maptodouble(p -> p.getspend()).sum() ;
sum可以改成count等其它函式
4,排序號取第乙個
profitresult monthresult = calcresult.stream().sorted(comparable::compareto).filter(p ->p.getperiod().equals(period)).findany().get();if (monthresult != null
)
5,分組統計轉成map
mapmonthmap = this.data.stream().filter(p ->p.getversion().equals(project)).collect(collectors.groupingby(quoteitem::getfinishmonth, collectors.summingdouble(quoteitem::getestimate))
);
6,分頁獲取
//取出一頁資料的id列表
listids = list.stream().skip((finddoctorvo.getpage() -1) *finddoctorvo.getpagesize())
.limit(finddoctorvo.getpagesize())
.map(teamvo::getteamid)
.collect(collectors.tolist());
7,轉換成其它物件
方式一:listnewlist = list.stream().map(sessionlistvo::new).collect(collectors.tolist());
方式二:
listsalelist = list.stream().filter(p->p.salevalid()).map(info->).collect(collectors.tolist());
8,查詢並拼接
string newtags = tags.stream().filter((p) -> !p.equals(this.defaulttag)).collect(collectors.joining(this.spliter));
JDK8之lambda處理stream的常用例子
在日常的編碼中,我們經常要對集合類物件進行處理。jdk8之前,我們可能要用for迴圈等方式來處理集合中的每乙個元素。不過jdk8的lambda表示式給了我們更方便的選擇。關於lambda表示式和stream的介紹,這裡有一篇文章寫得非常好,詳細易懂。jdk 8 函式式程式設計入門 既然本文是要寫一些...
關於jdk8使用stream去重
1.使用distinct 去重 distinct是stream自帶方法,根據hashcode和equals 方法進行去重,會保留第一次出現資料。示例 list.stream distinct collect collectors.tolist 2.使用filter filter是stream自帶的篩...
JDK8新特性之Stream流
j a.util.stream.stream stream流和傳統的io流,它們都叫流,卻是兩個完全不一樣的概念和東西。流可以簡單的說是處理資料集合的東西,可以申明式流式api來處理集合,而不是寫乙個邏輯實現。流分為順序流及並行流,順序流即每個指令按順序執行,並行流即集合裡面的操作並行執行。list...