2. Расскажите про иерархию коллекций

2. Расскажите про иерархию коллекций

Unknown


Интерфейс Collection расширяют интерфейсы:

List (список) представляет собой коллекцию, в которой допустимы дублирующие значения. Элементы такой коллекции пронумерованы, начиная от нуля, к ним можно обратиться по индексу.

Реализации:

  1. ArrayList - инкапсулирует в себе обычный массив, длина которого автоматически увеличивается при добавлении новых элементов.
  2. LinkedList (двунаправленный связный список) - состоит из узлов, каждый из которых содержит как собственно данные, так и две ссылки на следующий и предыдущий узел.
  3. Vector — реализация динамического массива объектов, методы которой синхронизированы (доступны по очереди, т.е. может использовать кто-то один).
  4. Stack — реализация стека LIFO (last-in-first-out).

Set (сет) описывает неупорядоченную коллекцию, не содержащую повторяющихся элементов.

Реализации:

  1. HashSet - использует HashMap для хранения данных. В качестве ключа используется добавляемый элемент, а в качестве значения — объект-пустышка (new Object()). Из-за особенностей реализации порядок элементов не гарантируется при добавлении.
  2. LinkedHashSet — гарантирует, что порядок элементов при обходе коллекции будет идентичен порядку добавления элементов.
  3. (SortedSet) TreeSet — предоставляет возможность управлять порядком элементов в коллекции при помощи объекта Comparator, либо сохраняет элементы с использованием «natural ordering».

Queue (очередь) предназначена для хранения элементов с предопределённым способом вставки и извлечения FIFO (first-in-first-out):

  1. PriorityQueue — предоставляет возможность управлять порядком элементов в коллекции при помощи объекта Comparator, либо сохраняет элементы с использованием «natural ordering».
  2. ArrayDeque — реализация интерфейса Deque, который расширяет интерфейс Queue методами, позволяющими реализовать конструкцию вида LIFO (last-in-first-out).

Интерфейс Map реализован классами:

  1. Hashtable — хэш-таблица, методы которой синхронизированы. Не позволяет использовать null в качестве значения или ключа и не является упорядоченной.
  2. HashMap — хэш-таблица. Позволяет использовать null в качестве значения или ключа и не является упорядоченной.
  3. LinkedHashMap — упорядоченная реализация хэш-таблицы.
  4. TreeMap — реализация, основанная на красно-чёрных деревьях. Является упорядоченной и предоставляет возможность управлять порядком элементов в коллекции при помощи объекта Comparator, либо сохраняет элементы с использованием «natural ordering».
  5. WeakHashMap — реализация хэш-таблицы, которая организована с использованием weak references для ключей (сборщик мусора автоматически удалит элемент из коллекции при следующей сборке мусора, если на ключ этого элемента нет жёстких ссылок).

Предыдущий вопрос: 1. Что такое коллекция?

Следующий вопрос: 3. Почему Map это не Collection, в то время как List и Set являются Collection?

Все вопросы по теме: список

Все темы: список

Вопросы/замечания/предложения/нашли ошибку:напишите мне


Report Page