小编Arp*_*hur的帖子

Java8流-比较两个列表的对象值并将值添加到第一个列表的子对象?

我有两个对象:

public class ObjectOne {

 private String id;
 private String name;
 private String school;
 private String score; //Default score is null

 ..getters and setters..
}

public class ObjectTwo {

 private String id;
 private String marks; 

 ..getters and setters..
}
Run Code Online (Sandbox Code Playgroud)

而且,我有上述对象的两个列表,

List<ObjectOne> listOne;
List<ObjectTwo> listTwo;
Run Code Online (Sandbox Code Playgroud)

如果ID相等,如何根据标准比较两个列表并为listOne的得分分配listTwo的分数。我知道,我们可以使用两个for循环来做。但是我想使用Java8流来实现它。

List<ObjectOne> result = new ArrayList<>();

for(ObjectOne one : listOne) {
    for(ObjectTwo two : listTwo) {
        if(one.getId().equals(two.getId())) {
            one.setScore(two.getmarks());
            result.add(one);
        }
    }
}
return result;
Run Code Online (Sandbox Code Playgroud)

如何使用Java8 lambda和流实现此功能?

lambda arraylist java-8 java-stream

6
推荐指数
1
解决办法
2万
查看次数

标签 统计

arraylist ×1

java-8 ×1

java-stream ×1

lambda ×1