当前位置: 首页 > 面试题库 >

比较两个列表以进行更新,删除和添加

师野
2023-03-14
问题内容

简单的问题。

我有一个新列表和一个旧列表。在Java中,有没有一种标准的方法/库可以比较这两个列表,并确定哪些项目已被更新/删除或是全新的?例如,我应该以三个列表结束-
删除的项目(旧项目而不是新项目),更新的项目(两个项目都在),新项目(新项目而不是旧项目)。

我可以自己写这个,但是想知道是否有标准的方法可以做到。

列表中的对象实现正确。


问题答案:

没有标准的方法对不起。您可以使用标准JDK相当轻松地完成此操作,而无需诉诸于对Apache
Commons的依赖(如其他人所建议的那样)。假设您的清单是List<T>实例:

List<T> oldList = ...
List<T> newList= ...

List<T> removed = new ArrayList<T>(oldList);
removed.removeAll(newList);

List<T> same = new ArrayList<T>(oldList);
same.retainAll(newList);

List<T> added = new ArrayList<T>(newList);
added.removeAll(oldList);


 类似资料:
  • 问题内容: 我有以下两个收藏夹,其中包含学生证。 id是格式为111-1111的字符串。例如ID 221-2534、215-6365等。 这些ID与其他数据一起位于固定格式的文件中。也就是说,前8个字符ID,后10个字符名称,后10个字符地址,依此类推。 我将id读入集合,如下所示: 此处,文件中的条目按SSN排序。因此,我相信所形成的集合也将得到排序。 现在: 案例: 我想通过比较两个集合来了解

  • 问题内容: 我有两个列表(不是Java列表,可以说两列) 例如 我想要一个返回多少个相同元素的方法。对于此示例,它应该为3,并且应该返回列表的相似值和不同的值。 如果是,我应该使用哈希图,然后用什么方法获得结果? 请帮忙 PS:这不是学校作业:)因此,如果您只是指导我就足够了 问题答案: 编辑 这是两个版本。一种使用,另一种使用 比较它们并从中创建您自己的版本,直到获得所需的内容。 这应该足以覆盖

  • 问题内容: 我正在尝试创建一个包含2个列表并返回仅具有两个列表差异的列表的函数。 例: 结果应打印 到目前为止的功能: 第一个for循环将其排序,第二个将重复项删除。问题是结果 不是,所以不能完全删除重复项吗?我可以添加些什么来做到这一点。我不能使用任何特殊模块,.sort,set或其他任何东西,而只是基本地循环。 问题答案: 基本上,您希望将一个元素添加到新列表中(如果一个元素存在而另一个元素中

  • 问题内容: 我想知道如何比较两个不同的数据库 表记录 。我的意思是,我将比较两个数据库表,它们可能具有不同的列名但具有相同的数据。但是其中一个表可能比另一个表具有更多的记录,因此我想看看这两个表之间的区别是什么。为此,如何编写sql查询?仅供参考:这两个数据库都在同一个SQL Server实例下。 然后,在比较表1和表2之后,它应该 从 表2返回 Ruby Core。 问题答案: 如果执行从T1到

  • 问题内容: 我有两个表,并且如果第二个表中存在行的确切副本,则需要从第一个表中删除行。 有没有人举过我如何在MSSQL Server中执行此操作的示例? 问题答案: 好吧,在某个时候,您将必须检查所有列-可能还需要加入… 应该可以做到……还有,但是这只会有所 帮助 -您仍然需要检查实际值以防止哈希冲突。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

  • 我有两个表,分别是产品和采购: PRODUCTS表-将获得购买的所有新产品。这意味着表prroducts中不存在相同的productname。所有独特产品列表 采购表-具有唯一purchase_id的所有采购产品的列表。 > 如果要在PURCHASE中添加或插入值,表PRODUCTS将获得PURCHASE的所有值,但前提是PURCHASE中的productname不存在于PRODUCTS中的'pr