竹杖芒鞋轻胜马,谁怕?一蓑烟雨任平生(=・ω・|

IIIID

园龄:4年5个月粉丝:3关注:23

2022-01-11 14:25阅读: 2427评论: 0推荐: 0

【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 中国大陆许可协议进行许可。

posted @   IIIID  阅读(2427)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起