Укр
Основы Java Коллекций

Основы Java Коллекций

  • 13 октября, 2020
  • читать 3 мин
Евгений Мыца
Евгений Мыца Android Developer в emCodio, Преподаватель Компьютерной школы Hillel.

Возможно каждый, кто в той или иной степени занимается программированием сталкивался с таким понятием как коллекции. А кто не занимается — вероятнее всего, слышал о таком явлении.

Так что же такое коллекции с точки зрения мира информационных технологий?

Исходя из определений специализированных ресурсов, коллекции можно рассматривать как хранилища или контейнеры, поддерживающие различные способы накопления и упорядочения объектов с целью обеспечения возможностей эффективного доступа к ним. Коллекция – это группа отдельных объектов, представленных как единое целое.

Коллекции являются реализацией абстрактных структур данных, при помощи которых можно проводить основные манипуляции над элементами этих коллекций: добавление, удаление, изменение.

Коллекции в Java

А что насчет коллекций в Java? Язык Java предоставляет интересное решение — Java Collections Framework. Обучение Java онлайн рассматривает в том числе и этот фреймворк.

Java Collections Framework — это унифицированная архитектура для представления коллекций и управления ими.

Данный фреймворк содержит: интерфейсы, реализации интерфейсов, алгоритмы.

Интерфейсы — абстрактные типы данных, которые представляют коллекции. Интерфейсы позволяют манипулировать коллекциями независимо от деталей их представления.

Реализации интерфейсов — конкретные реализации интерфейсов коллекции. Выступают структурами данных многократного использования. Реализация интерфейсов, в Java Collections Framework, происходит через соответствующие классы.

Базовые интерфейсы Java Collections Framework – Collection, Set, SortedSet, List, Queue, Deque, Map, SortedMap.

Однако, примечательно то, что интерфейс Map не реализует интерфейс Collection. Дерево Map — отдельно от дерева Collection, но при погружении в рассмотрение вопросов о коллекциях в Java, данные иерархии, как правило, рассматриваются совместно. Интерфейс Collection (пакет — java.util.Collection) и интерфейс Map (java.util.Map) являются двумя основными корневыми интерфейсами классов Java коллекций.

Схематично базовые интерфейсы Java Collections Framework можно представить следующим образом:

Рекомендуем курс по теме

Базовые интерфейсы Java Collections Framework
  • Collection — корень иерархии коллекции. Коллекция представляет собой группу объектов, известных как ее элементы. Интерфейс Collection реализуют все коллекции и используется для передачи коллекций и манипулирования ими, когда требуется максимальная универсальность.
  • Set (набор) — коллекция, которая не может содержать повторяющиеся элементы.
  • SortedSet — набор, который поддерживает свои элементы в порядке возрастания. Несколько дополнительных операций предоставляются, чтобы воспользоваться преимуществами упорядочивания/сортировки.
  • List (список) — упорядоченная коллекция (иногда называется последовательностью). Может содержать повторяющиеся элементы.
  • Queue (очередь) — коллекция, используемая для хранения нескольких элементов перед обработкой. Помимо базовых операций сбора, очередь обеспечивает дополнительные операции вставки, извлечения и проверки. Очереди обычно, но не обязательно, упорядочивают элементы в порядке FIFO (first-in-first-out — первым вошел — первым вышел).
  • Deque — коллекция, используемая для хранения нескольких элементов перед обработкой. Помимо базовых операций по сбору Deque обеспечивает дополнительные операции вставки, извлечения и проверки. Deque наследует интерфейс Queue и представляет функционал для двунаправленных очередей. Deque может использоваться как FIFO (first-in-first-out — первым вошел — первым вышел) и LIFO (last-in-first-out — последним вошел — первым вышел). Все новые элементы могут быть вставлены, извлечены и удалены с обоих концов.
  • Map — объект, который сопоставляет ключи со значениями. Map не может содержать дубликаты ключей, каждый ключ может соответствовать максимум одному значению.
  • SortedMap — Map, который поддерживает свои отображения в порядке возрастания ключа. SortedMap можно рассматривать как аналог SortedSet для иерархии Map.

Java Collections Framework включает в себя множество различных структур данных, доступных в JDK. Они чаще всего обеспечивают все потребности в процессе реализации логики приложения.

Если нужно, разработчик может осуществить собственную реализацию, чтобы расширить или переопределить существующую логику. Это также применимо для создания своей реализации подходящего интерфейса с нуля. Можно найти и готовые альтернативные решения или дополнения к Java Collections Framework. Самые популярные из них — Google Guava и Commons Collections.