不同实体泛型两个list复制
时间: 2023-09-30 22:07:53 浏览: 76
假设我们有两个不同实体的列表 `List<Entity1>` 和 `List<Entity2>`,我们可以使用 Java 8 的 `stream` 和 `map` 方法来实现复制操作。具体步骤如下:
1. 将 `List<Entity1>` 转换为 `List<Entity2>`。
```java
List<Entity2> entity2List = entity1List.stream()
.map(entity1 -> {
Entity2 entity2 = new Entity2();
// 将 Entity1 的属性复制到 Entity2
entity2.setProperty1(entity1.getProperty1());
entity2.setProperty2(entity1.getProperty2());
// ...
return entity2;
})
.collect(Collectors.toList());
```
在 `map` 方法中,我们创建了一个新的 `Entity2` 对象,并将 `Entity1` 的属性复制到该对象中。然后,我们将所有 `Entity2` 对象收集到一个新的列表中。
2. 将 `List<Entity2>` 转换为 `List<Entity1>`。
```java
List<Entity1> entity1List = entity2List.stream()
.map(entity2 -> {
Entity1 entity1 = new Entity1();
// 将 Entity2 的属性复制到 Entity1
entity1.setProperty1(entity2.getProperty1());
entity1.setProperty2(entity2.getProperty2());
// ...
return entity1;
})
.collect(Collectors.toList());
```
在这个 `map` 方法中,我们创建了一个新的 `Entity1` 对象,并将 `Entity2` 的属性复制到该对象中。然后,我们将所有 `Entity1` 对象收集到一个新的列表中。
注意,这种方法需要我们手动复制每个实体的属性。如果我们有很多实体,这可能会变得非常冗长和重复。在这种情况下,我们可以考虑使用一个库,如 `ModelMapper` 或 `Dozer`,来自动处理实体之间的映射。
阅读全文