Коллекции представляют собой реализацию абстрактных типов (структур) данных, поддерживающих две основные операции:
· вставка нового элемента в коллекцию;
· удаление элемента из коллекции.
В качестве дополнительных операций могут быть реализованы следующие: создать структуру данных, просмотреть элементы, подсчитать их количество и др.
Примером коллекции является стек (структура LIFO – Last In First Out), в котором всегда удаляется объект, вставленный последним. Для очереди (структура FIFO – First In First Out) используется другое правило удаления: всегда удаляется элемент, вставляемый первым. В абстрактных типах данных существует несколько видов очередей: двусторонние очереди, кольцевые очереди, обобщенные очереди, в которых запрещены повторяющиеся элементы. Стеки и очереди могут быть реализованы как на базе массива, так и на базе связного списка.
Коллекции объединены в библиотеку классов java.util и представляют собой контейнеры для хранения и манипулирования объектами. До появления Java 2 эта библиотека содержала классы только для работы с наиболее необходимыми структурами данных: Vector, Stack, Hashtable, BitSet, а также интерфейс Enumeration для работы с элементами этих классов. Коллекции, появившиеся в Java 2, представляют общую технологию хранения и доступа к объектам. Структура коллекций характеризует способ, с помощью которого программы Java обрабатывают группы объектов. Коллекции – это динамические массивы, связные списки, деревья, множества, хэш-таблицы, стеки, очереди. В интерфейсе Collection определены статические методы, которые работают на всех коллекциях. Другой способ работы с элементами коллекций – использование методов интерфейса Iterator, который обеспечивает средства перечисления содержимого коллекции.
Интерфейсы коллекции:
Collection – вершина иерархии коллекций;
List – расширяет коллекции для обработки списков;
Set – расширяет коллекции для обработки наборов (множеств), содержащих уникальные элементы;
Map – карта отображения вида “ключ-значение”. Интерфейс Map будет рассмотрен ниже.
Все классы коллекций реализуют также интерфейс Serializable.