如何将一个集合放在另一个集合的某个字段 Java stream流实现
时间: 2024-05-03 10:17:33 浏览: 94
java8 集合 多字段 分组 统计个数代码
5星 · 资源好评率100%
假设你有两个类,一个是 `Outer`,另一个是 `Inner`,其中 `Outer` 包含一个 `List<Inner>` 类型的字段 `innerList`,而 `Inner` 包含一个 `String` 类型的字段 `name`。你想要将一个名为 `sourceList` 的 `List<Inner>` 集合添加到 `outerList` 集合中,并将其添加到 `outerList` 中的某个 `Outer` 对象的 `innerList` 字段中。
你可以使用 Java 8 的 Stream API 和 Lambda 表达式来实现此目的,代码如下:
```
List<Outer> outerList = new ArrayList<>();
// 假设你已经有了一个名为 sourceList 的 List<Inner> 集合
String targetOuterName = "targetOuterName"; // 目标 Outer 对象的 name 字段
outerList.stream()
.filter(outer -> outer.getName().equals(targetOuterName))
.findFirst()
.ifPresent(outer -> outer.getInnerList().addAll(sourceList));
```
这段代码首先使用 `stream()` 方法将 `outerList` 转换为 Stream,然后使用 `filter()` 方法筛选出 `name` 字段值等于 `targetOuterName` 的 `Outer` 对象,使用 `findFirst()` 方法获取第一个匹配的对象,最后使用 `ifPresent()` 方法对匹配的 `Outer` 对象执行添加操作。
阅读全文