如何基于唯一ID合并两个对象的列表?

时间:2015-03-15 05:30:00

标签: collections groovy

我有一个班级

class Topic {
    Integer id
    String name
    Integer numberPosts
}

和另一个

class TopicDetails {
    Integer id
    Integer numberPosts
}

第二个实际上是查询结果的容器,这就是相似性的原因。

我有两个列表List<Topic>List<TopicDetails>。两个列表中的对象将由id唯一。第二个将最多包含所有ID作为第一个列表。

我想将第二个列表中的数据合并到第一个列表中。我知道有很简单的方法,比如

  • 迭代两者并检查ID并合并细节
  • 使用地图了解详情。

但是有更好的方法吗? Collection框架有许多新方法,所以我认为在groovy中可能有一些优雅的方法来做这个,而不是做上面提到的方法。

编辑我忘了提到第一个最初没有关于numberPosts的信息。这就是为什么存在第二个,即作为来自数据库的信息的容器。

1 个答案:

答案 0 :(得分:2)

列表仍然只是一个列表。你可以使用lambda表达式&#34; find&#34;每次都有ID,但效率没有提高。地图是要走的路,至少对于其中一个列表。