我有一个包含对象的数组,这些对象具有标识符和排序值。当我正在查询的端点返回带有更新对象的数组时,我需要将其与现有数组合并,传入数组的重复标识符对象优先于现有数组,但它们要彼此并排。例如
arrayA = [A:1, B:4, C:6]
arrayB = [D:2, A:3, C:5, G:7]
result = [D:2, A:3, B:4, C:5, G:7]
到目前为止,我想不出任何解决方案,其中不包括我先对数组进行重复数据删除然后对它们进行排序,这对于我要使用的长列表来说似乎效率很低。解决这个问题的最有效方法是什么?
您可以执行mergesort使用的常规合并步骤,但可以跳过arrayA
中已经在arrayB
中的元素。要快速执行此检查,您可以首先将arrayB
中的所有ID添加到Set
中。这将导致最终运行时间为O(n + m)