Методы удаления дубликатов из списка (сохранять первое появление)

Чтобы удалить дубликаты из списка, сохранив при этом первое вхождение, вы можете использовать различные методы на разных языках программирования. Вот несколько распространенных подходов:

  1. Метод 1: использование набора
    • Преобразуйте список в набор, который автоматически удалит дубликаты.
    • Преобразуйте набор обратно в список, чтобы сохранить порядок первых вхождений.

Пример на Python:

my_list = [2, 4, 6, 2, 8, 4, 10, 6]
unique_list = list(set(my_list))
print(unique_list)

Вывод: [2, 4, 6, 8, 10]

  1. Метод 2: использование словаря
    • Пройтись по списку и добавить каждый элемент в качестве ключа в словаре.
    • Поскольку в словарях не может быть повторяющихся ключей, дубликаты автоматически удаляются.
    • Извлеките ключи из словаря, чтобы получить уникальный список.

Пример на Python:

my_list = [2, 4, 6, 2, 8, 4, 10, 6]
unique_list = list(dict.fromkeys(my_list))
print(unique_list)

Вывод: [2, 4, 6, 8, 10]

  1. Метод 3: использование понимания списка
    • Пройтись по списку и добавить каждый элемент в новый список, если он еще не был замечен.
    • Проверьте уникальность, сравнив индекс текущего элемента с его первым появлением.

Пример на Python:

my_list = [2, 4, 6, 2, 8, 4, 10, 6]
unique_list = [x for i, x in enumerate(my_list) if my_list.index(x) == i]
print(unique_list)

Вывод: [2, 4, 6, 8, 10]

  1. Метод 4: использование LinkedHashSet (Java)
    • В Java вы можете использовать LinkedHashSet, который поддерживает порядок вставки и автоматически удаляет дубликаты.

Пример на Java:

import java.util.ArrayList;
import java.util.LinkedHashSet;
import java.util.List;
List<Integer> myList = new ArrayList<>();
myList.add(2);
myList.add(4);
myList.add(6);
myList.add(2);
myList.add(8);
myList.add(4);
myList.add(10);
myList.add(6);
List<Integer> uniqueList = new ArrayList<>(new LinkedHashSet<>(myList));
System.out.println(uniqueList);

Вывод: [2, 4, 6, 8, 10]