Junior — Middle
91
Considera l'uso della struttura dati HashMap per ottimizzare il processo di rimozione di elementi duplicati in una lista non ordinata?
Risposta dell'AI
sobes.tech AI
Да, использование структуры данных HashMap (в Java — HashMap) является эффективным способом устранения повторяющихся элементов в несортированном списке. HashMap обеспечивает быстрый доступ и проверку наличия ключа за амортизированное время O(1), что значительно ускоряет процесс по сравнению с перебором всех элементов.
Пример подхода:
- Создать пустой HashMap или HashSet.
- Итерироваться по элементам списка.
- Для каждого элемента проверять, есть ли он уже в HashMap/HashSet.
- Если нет — добавлять.
- В итоге получить коллекцию уникальных элементов.
Пример кода на Java с использованием HashSet:
import java.util.*;
public class RemoveDuplicates {
public static List<Integer> removeDuplicates(List<Integer> list) {
Set<Integer> set = new HashSet<>();
List<Integer> result = new ArrayList<>();
for (Integer item : list) {
if (set.add(item)) { // add возвращает false, если элемент уже есть
result.add(item);
}
}
return result;
}
}
Таким образом, HashMap/HashSet позволяет эффективно фильтровать повторяющиеся элементы без необходимости сортировки или вложенных циклов.