使用場景:
已存在乙個物件的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,...