【发布时间】:2010-12-12 15:42:41
【问题描述】:
简单的问题。
我有一个新列表和一个旧列表。在 Java 中是否有标准方式/库允许我比较这两个列表并确定哪些项目已更新/删除或全新?例如。我应该最终得到三个列表 - 已删除项目(旧项目但不是新项目)、更新项目(两者都有)、新项目(新项目而不是旧项目)。
我可以自己写,但想知道是否有标准的方法。
列表中的对象正确地实现了。
【问题讨论】:
-
您是否关心列表顺序?例如,迄今为止建议的涉及retainAll / removeAll 的解决方案将无法处理新列表包含与旧列表相同的元素的情况,尽管顺序不同;例如{"foo", "bar"} vs {"bar", "foo"}。
-
只要实现了equals方法,我不明白为什么顺序会影响removeAll等。当然不会在javadoc中建议:从此列表中删除指定中包含的所有元素收集(可选操作)。
标签: java collections