java - 最快的数组比较

标签 java arrays data-structures comparison

我有两个具有唯一值的排序数组(可以是 ArrayList、Collections 或任何其他数据格式)。比较它们的最快方法是什么?目标是删除两个列表中存在的所有值。

开始于:

int [] a = {1, 2, 3, 4, 5};
int [] b = {1, 2, 3, 6, 7};

结束于:

a = {4, 5}
b = {6, 7}

最佳答案

使用 MergeSort 中合并步骤的修改版本

  • 为每个数组获取一个迭代器
  • 比较迭代器的值
  • 如果相等,则递增
  • 如果不相等,将较小的值放入唯一值数组并仅递增该迭代器
  • 重复直到遇到数组的末尾
  • 如果在其他数组中还有剩余,则它们是唯一的

关于java - 最快的数组比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4108342/

相关文章:

java - 如何使 Java 应用程序 self 更新?

java - 在 Java Swing 中构建 Jpeg 幻灯片

java - 如何将带有 ReentrantLock 的 Thread 包装到 CompletableFuture 调用中?

algorithm - 用于查找倒排索引中乱序值数组的交集的良好数据结构?

c - 在c中分离运算符和数字的最佳方法是什么

java - 如何将方法输出传递到数组元素中?

无符号字符数组的 C++ 数组

javascript - 使用纯 JavaScript 删除数组中不包含值的选项

没有迭代的Javascript数组空检查

c - 程序不会提示用户最后一次输入,而是循环第二本书 - 数据结构