【发布时间】:2017-06-22 01:35:51
【问题描述】:
我无法从已合并为一个的两个数组中删除重复项。我编写了以下合并数组的代码,但我不确定如何从最终数组中删除重复项。假设数组已经排序。
public static int[] merge(int[] list1, int[] list2) {
int[] result = new int[list1.length + list2.length];
int i = 0;
int j = 0;
for (int k = 0; k < (list1.length + list2.length); k++) {
if (i >= list1.length) {
result[k] = list2[j];
j++;
}
else if (j >= list2.length) {
result[k] = list1[i];
i++;
}
else {
if (list1[i] < list2[j]) {
result[k] = list1[i];
i++;
} else {
result[k] = list2[j];
j++;
}
}
}
return result;
}
【问题讨论】:
-
在合并前删除它们。
-
我不知道问题的背景是什么,或者你的程序的内存使用/速度有多重要,但你应该开始使用集合。您可以用一两行代码完成所有这些操作。
标签: java arrays merge duplicates