2

新数据:

ArrayList<Comment> newComments =  getComments();

已经存在的数据,已经填写了一些数据:

ArrayList<Comment> oldComments 

我不能用新内容覆盖整个旧内容。

我希望将新的(尚未存在的)Comment对象newComments添加到 中oldComments,也希望将缺少的那些newComments从 中删除oldComments

Collections包装中有一些好的方法吗?或任何其他方式?

注意:Comment类有自定义compare()方法(不使用 default equals()

4

2 回答 2

2

Ajava.util.Set更适合您的用例。然后你可以这样做:

oldComments.retainAll(newComments);
oldComments.addAll(newComments);
于 2012-08-28T17:34:00.267 回答
0

您可以使用CollectionUtils来自 Apache 的基础和union()方法。

请注意,您需要确保Comment该类覆盖该equals()方法以确保具有有效的联合,而不是两个列表的串联。

于 2012-08-28T17:33:50.437 回答