Как эффективно удалить дубликаты из массива без использования набораJAVA

Программисты JAVA общаются здесь
Anonymous
Как эффективно удалить дубликаты из массива без использования набора

Сообщение Anonymous »

Меня попросили написать свою собственную реализацию, чтобы удалить дублированные значения в массиве. Вот что я создал. Но после испытаний с 1 000 000 элементов потребовалось очень много времени, чтобы закончить. Есть ли что -то, что я могу сделать, чтобы улучшить свой алгоритм или какие -либо ошибки для удаления?

Мне нужно написать свою собственную реализацию - не использовать Set , hashset и т. Д. Или любые другие инструменты, такие как итераторы. Просто массив для удаления дубликатов. < /Strong> < /p>

public static int[] removeDuplicates(int[] arr) {

int end = arr.length;

for (int i = 0; i < end; i++) {
for (int j = i + 1; j < end; j++) {
if (arr == arr[j]) {
int shiftLeft = j;
for (int k = j+1; k < end; k++, shiftLeft++) {
arr[shiftLeft] = arr[k];
}
end--;
j--;
}
}
}

int[] whitelist = new int[end];
for(int i = 0; i < end; i++){
whitelist = arr;
}
return whitelist;
}


Подробнее здесь: https://stackoverflow.com/questions/179 ... -using-set

Вернуться в «JAVA»