stream 使用 分組

2021-10-05 07:56:32 字數 978 閱讀 2372

使用場景:

已存在乙個物件的list列表,希望根據這個物件的某乙個屬性對list進行分組,然後將分組後的這個屬性形成字串。

物件列表:

listlsit = new arraylist<>();

list.add(new student(1,"張三",12)); // 1班 張三 12歲

list.add(new student(1,"李四",13));

list.add(new student(2,"王五",12));

list.add(new student(2,"賊六",11));

list.add(new student(3,"對七",12));

學生建構函式:

new student(integer classno,string name,integer age)

對list按照 班級進行分組

//按照班級進行分組

map> classmap = list.stream().collect(collectors.groupingby(student::getclassno));

結果是map:

key: 1 value:[,]

key: 2 value:[,]

key: 3 value:

將結果的key值形成新的arraylist陣列集合

listclassnoarray= classmap.keyset().stream().map(o->o.tostring()).collect(collectors.tolist());

結果:arraylist:["1","2","3"]

將list陣列集合轉成字串

string classnostr = string.join(",",classnoarray);  //"1,2,3"

Stream 分組篩選

獲取相同名字裡面最大年齡的人 param alllist return private listgetlatestfileinfolist listalllist 根據分組,組內取age最大的資料 map groupedmap alllist.stream collect collectors.gr...

Stream 分組消費與持久化

比如在如下場景中,訂單系統我們做集群部署,都會從rabbitmq中獲取訂單資訊,那如果乙個訂單同時被兩個服務獲取到,那麼就會造成資料錯誤,我們得避免這種情況,這時我們就可以使用stream中的訊息分組來解決。注意在stream中處於同乙個group中的多個消費者是競爭關係,就能夠保證訊息只會被其中乙...

cuda 使用多個stream

對stream的介紹,使用兩個流 include define n 1024 1024 每次從cpu傳輸到gpu的資料塊大小 define m n 20 cpu上的總資料量 測試裝置是否支援邊執行核函式邊複製資料 bool support overlap global void add int a,...