Stream對兩個 List 遍歷匹配數據


兩個list

第一個list1:

[{id:1,value:v1},{id:2,value:v2},{id:3,value:v3},{id:4,value:v4}]

第二個list2:

[{id:1,name:name1},{id:2,name:name2}]

想要的是:[{id:1,value:v1,name:name1},{id:2,value:v2,name:name2},{id:3,value:v3,name:0},{id:4,value:v4,name:0}]

實現:

List<Map<String, Object>> resultList1 = list1.stream().map(m->{

m.put("name",0)
list2.stream().filter(m2->Objects.equals(m.get("id"), m2.get("id"))).forEach(s->m.put("name",s.get("name")));
return m;
}).collect(Collectors.toList());
resultList1.stream().forEach(s-> System.out.println(s));

說明:

stream():把源數據轉換為流

list1.stream().map:用於映射每個元素到對應的結果,類似與for(Map item: list1) m對應 item

filter():filter 方法用於通過設置的條件過濾出元素。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM