← Назад к вопросам

В чем разница между List и Set?

1.3 Junior🔥 151 комментариев
#Java#Python

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI26 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Разница между List и Set

Основные различия

List и Set — это фундаментальные интерфейсы коллекций в Java, которые имеют важные различия в структуре и поведении:

List

  • Упорядоченная коллекция — сохраняет порядок элементов в том виде, как они добавляются
  • Дублирование разрешено — может содержать одинаковые элементы
  • Доступ по индексу — позволяет получать элементы по позиции (index-based access)
  • Реализации: ArrayList, LinkedList, Vector, CopyOnWriteArrayList

Set

  • Неупорядоченная коллекция (в большинстве случаев) — не гарантирует порядок элементов
  • Уникальность элементов — каждый элемент может присутствовать только один раз
  • Нет индекса — нельзя получить элемент по позиции
  • Реализации: HashSet, LinkedHashSet, TreeSet, EnumSet

Практические примеры

// List позволяет дублирование и сохраняет порядок
List<String> list = new ArrayList<>();
list.add("apple");
list.add("banana");
list.add("apple"); // Дублирование разрешено
System.out.println(list); // [apple, banana, apple]
System.out.println(list.get(0)); // apple

// Set автоматически удаляет дубликаты
Set<String> set = new HashSet<>();
set.add("apple");
set.add("banana");
set.add("apple"); // Дубликат не добавится
System.out.println(set); // [banana, apple] или [apple, banana]

Когда использовать

List подходит для:

  • Сохранения порядка элементов
  • Работы с элементами по индексу
  • Когда дублирование имеет значение

Set подходит для:

  • Проверки уникальности
  • Удаления дубликатов
  • Операций (объединение, пересечение, разность)

Выбор между ними зависит от конкретной задачи в тестировании.

В чем разница между List и Set? | PrepBro