Расскажи об иерархии коллекций в Java

Иерархия коллекций — это набор интерфейсов и классов, которые предоставляют общие структуры данных, такие как списки, множества и карты. Находится в пакете `java.util` и разработана для работы с группами объектов.

Основные интерфейсы

Collection Interface: Корневой интерфейс иерархии коллекций. Определяет методы, такие как `add()`, `remove()`, `size()`, `isEmpty()` и `iterator()`, которые должны быть реализованы всеми коллекциями.

  • List Interface: Представляет упорядоченную коллекцию. Элементы в списке могут быть доступны по индексам. Допускает дублирование элементов. Реализации включают `ArrayList`, `LinkedList` и `Vector`.

  

  • Set Interface: Набор уникальных элементов. Не допускает дублирования элементов. Реализации включают `HashSet`, `LinkedHashSet` и `TreeSet`.
  • Queue Interface: Для работы с коллекциями, используемыми для хранения элементов перед обработкой. Поддерживает операции вставки, извлечения и инспекции. `LinkedList` реализует как `List`, так и `Queue`. Также есть `PriorityQueue` для элементов, которые должны обрабатываться в порядке приоритета.

Map Interface: Не наследуется от `Collection` интерфейса. Описывает структуру для хранения пар ключ/значение. Ключи уникальны, а значения могут дублироваться. Реализации включают `HashMap`, `LinkedHashMap`, `TreeMap` и `Hashtable`.

Особенности классов

  • ArrayList: Динамический массив для хранения элементов, который автоматически расширяется. Предлагает быстрый доступ к элементам по индексу.
  • LinkedList: Двусвязный список, который обеспечивает эффективное добавление/удаление элементов. Может использоваться как список и очередь.
  • HashSet: Использует хеш-таблицу для хранения уникальных элементов. Не гарантирует порядок элементов.
  • LinkedHashSet: Расширяет `HashSet`, сохраняя порядок вставки элементов.
  • TreeSet: Хранит элементы в отсортированном и восходящем порядке. Использует красно-черное дерево.
  • HashMap: Хеш-таблица для хранения пар ключ/значение. Не поддерживает упорядоченность ключей или значений.

Feb. 22, 2024, easyoffer

  • Iterable
    • Collection
      • List
      • Set
        • SortedSet
          • NavigableSet
  • Map
    • SortedMap
      • NavigableMap
  • Iterator

Oct. 21, 2023, Источник