两个list实体对象去重合并
时间: 2023-07-07 16:35:31 浏览: 158
go合并两个有序列表
可以使用 Java 8 的 Stream API 来将两个 list 中的实体对象去重并合并。假设我们有两个 List,分别是 list1 和 list2,它们的元素类型是实体类 Entity,我们希望将这两个 list 中的实体对象去重合并,可以按照以下方式实现:
```
List<Entity> list1 = Arrays.asList(new Entity(1, "a"), new Entity(2, "b"), new Entity(3, "c"));
List<Entity> list2 = Arrays.asList(new Entity(2, "b"), new Entity(4, "d"), new Entity(5, "e"));
List<Entity> result = Stream.concat(list1.stream(), list2.stream())
.distinct()
.collect(Collectors.toList());
```
在这段代码中,我们使用 `concat()` 方法将 list1 和 list2 合并成一个 Stream 对象,然后使用 `distinct()` 方法将这个 Stream 中的重复元素去重,最后使用 `collect()` 方法将去重后的结果收集到一个新的 List 中。
需要注意的是,在这个示例中,我们假设实体类 Entity 已经正确实现了 `equals()` 和 `hashCode()` 方法,以便在去重时进行判断。如果实体类没有正确实现这两个方法,可能会导致去重不正确。
阅读全文