JDK8 Stream操作整理

2022-04-17 13:02:19 字數 1537 閱讀 5714

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...