【Java 8】lambda表达式对两个List进行循环,根据符合条件,进行相关的赋值操作并返回这个对象集合
创建实体类:
1 2 3 4 5 6 7 | @Data @AllArgsConstructor @NoArgsConstructor public class PointVo { private String name; private Integer y; } |
要求:已知list1和list2中name字段部分一致,将list2中的y字段根据与list2中的name字段相同的部分复制给list2
name字段不重合的部分y赋空值:
1 2 3 4 5 6 | tmps = tmps.stream().map(item -> reality.stream().filter( rea -> item.getName().equals(rea.getName())).findFirst().map(rea -> { item.setY(rea.getY()); return item; }).orElse( new PointVo(item.getName(), 0 )) ).collect(Collectors.toList()); |
name字段不重合的部分对象赋空值:
1 2 3 4 5 6 | tmps = tmps.stream().map(item -> reality.stream().filter( rea -> item.getName().equals(rea.getName())).findFirst().map(rea -> { item.setY(rea.getY()); return item; }).orElse( null )) ).collect(Collectors.toList()); |
本文作者:IIIID
本文链接:https://www.cnblogs.com/Oxyy/p/15788166.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
分类:
标签:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步