Search
Write a publication
Pull to refresh

Java collection. Basics

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

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

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

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

Коллекции в 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. Они чаще всего обеспечивают все потребности в процессе реализации логики приложения.

Если нужно, разработчик может осуществить собственную реализацию, чтобы расширить или переопределить существующую логику. Это также применимо для создания своей реализации подходящего интерфейса с нуля.

Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.