Java 合并两个list ,list1<dto1>,list2<dto2>,dto1包含list2
时间: 2023-10-08 07:12:50 浏览: 31
可以使用Java 8的Stream API来合并两个List。假设dto1包含list2的结构如下:
```
public class dto1 {
private String name;
private List<dto2> list2;
// getters and setters
}
public class dto2 {
private String id;
// getters and setters
}
```
那么,合并两个List的代码如下:
```
List<dto1> list1 = new ArrayList<>();
List<dto2> list2 = new ArrayList<>();
// 假设list1和list2已经被填充了数据
List<dto1> mergedList = list1.stream()
.map(dto1 -> {
dto1.setList2(list2.stream()
.filter(dto2 -> Objects.equals(dto1.getName(), dto2.getId()))
.collect(Collectors.toList()));
return dto1;
})
.collect(Collectors.toList());
```
上述代码中,首先使用Stream API遍历list1中的每一个元素,然后使用filter方法过滤出在list2中与当前元素匹配的元素,最后使用collect方法将过滤后的结果收集到list1中。