代码之家  ›  专栏  ›  技术社区  ›  Josh K

最快的阵列比较

  •  1
  • Josh K  · 技术社区  · 14 年前

    开始于:

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

    结束语:

    a = {4, 5}
    b = {6, 7}
    
    2 回复  |  直到 14 年前
        1
  •  9
  •   Josh K    14 年前

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

    • 为每个数组获取一个迭代器
    • 如果相等,则同时增加
    • 如果不相等,则将较小的值放入唯一值数组中,并仅递增该迭代器
    • 如果其他数组中还有剩余的,则这些是唯一的
        2
  •  1
  •   Denys Kniazhev-Support Ukraine    14 年前
    List list = Arrays.asList(a);
    
    list.retainAll(b); //now list has {1, 2, 3}
    
    List result = Arrays.asList(a).removeAll(list); //it now has 4, 5. For b do the same