gpt4 book ai didi

java - 将一个列表的字段映射到另一个列表

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:02:04 36 4
gpt4 key购买 nike

我是 Java 8 的新手,我有 2 个聊天的 List,我想在 List BList A 中设置一些字段如果他们的 id 匹配

聊天:

public class Chat {

private String id;

private Status status;

private Rating rating;

//Setters and getters
}

我可以使用嵌套循环来做到这一点,但不确定如何在 java 8 中做到这一点:

List<Chat> listA = getDataForA();
List<Chat> listB = getDataForB();

listA .forEach(a -> {
listB.forEach(b-> {
if (b.getId().equals(a.getId())) {
a.setRating(b.getRating());
a.setStatus(b.getStatus());
}
});
});

最佳答案

你能试试这个流吗,来自 listA 流,我们仅在 listA 和 listB id 匹配时设置评级和状态

    listA.stream()
.flatMap(a -> listB.stream().filter(b -> b.getId().equals(a.getId())).map(b -> {
a.setRating(b.getRating());
a.setStatus(b.getStatus());
return a;
}))
.collect(Collectors.toList());

关于java - 将一个列表的字段映射到另一个列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48758950/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com