如何根据唯一标识合并两个对象的列表?
How to merge List of two objects based on unique id?
我有一个class
class Topic {
Integer id
String name
Integer numberPosts
}
还有一个
class TopicDetails {
Integer id
Integer numberPosts
}
第二个实际上是查询结果的容器,这就是相似性的原因。
我有两个列表 List<Topic>
和 List<TopicDetails>
。对象在两个列表中的 id 都是唯一的。第二个将最多包含第一个列表中的所有 ID。
我想将第二个列表中的数据合并到第一个列表中。我知道有一些简单的方法,比如
- 遍历两者并检查 ID 并合并详细信息
- 使用地图了解详情。
但是有更好的方法吗? Collection
框架有很多新方法,所以我想在 groovy 中可能有一些优雅的方法来代替上面提到的方法。
EDIT 我忘了提到第一个最初没有关于 numberPosts 的信息。这就是第二个存在的原因,即作为数据库信息的容器。
列表仍然只是一个列表。您可以每次都使用 lambda 表达式和 "find" ID,但是您没有任何效率上的提高。至少对于其中一个列表而言,地图是必经之路。
我有一个class
class Topic {
Integer id
String name
Integer numberPosts
}
还有一个
class TopicDetails {
Integer id
Integer numberPosts
}
第二个实际上是查询结果的容器,这就是相似性的原因。
我有两个列表 List<Topic>
和 List<TopicDetails>
。对象在两个列表中的 id 都是唯一的。第二个将最多包含第一个列表中的所有 ID。
我想将第二个列表中的数据合并到第一个列表中。我知道有一些简单的方法,比如
- 遍历两者并检查 ID 并合并详细信息
- 使用地图了解详情。
但是有更好的方法吗? Collection
框架有很多新方法,所以我想在 groovy 中可能有一些优雅的方法来代替上面提到的方法。
EDIT 我忘了提到第一个最初没有关于 numberPosts 的信息。这就是第二个存在的原因,即作为数据库信息的容器。
列表仍然只是一个列表。您可以每次都使用 lambda 表达式和 "find" ID,但是您没有任何效率上的提高。至少对于其中一个列表而言,地图是必经之路。