Интерфейс Collection

В библиотеке коллекций Java существует два базовых интерфейса, реализации которых и представляют совокупность всех классов коллекций:

1. Collection – коллекция содержит набор объектов (элементов). Здесь определены основные методы для манипуляции с данными, такие как вставка (add, addAll), удаление (remove, removeAll, clear), поиск (contains).

2. Map – описывает коллекцию, состоящую из пар «ключ – значение». У каждого ключа только одно значение, что соответствует математическому понятию однозначной функции или отображения (mар). Такую коллекцию часто называют еще словарем (dictionary) или ассоциативным массивом (associative array).

Интерфейсы Collection и Map являются базовыми, но они не есть единственными. Их расширяют другие интерфейсы, добавляющие дополнительный функционал. О них мы ещё поговорим.

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

add(Object item) – добавляет в коллекцию новый элемент. Метод возвращает true, если добавление прошло удачно и false – если нет. Неудача может произойти только в том случае, если коллекция не допускает повторяющихся элементов (как, например, множество), а элемент уже присутствует в коллекции. Если элементы коллекции каким-то образом упорядочены, новый элемент добавляется в конец коллекции.

clear() – удаляет все элементы коллекции.

contains(Object obj) – возвращает true, если объект obj содержится в коллекции и false, если нет.

isEmpty() – проверяет, пуста ли коллекция.

remove(Object obj) – удаляет из коллекции элемент obj. Возвращает false, если такого элемента в коллекции не нашлось.

size() – возвращает количество элементов коллекции.

Существуют разновидности перечисленных методов, которые в качестве параметра принимают любую другую коллекцию. Например, метод addAll(Collection coll) добавляет все элементы другой коллекции coll в конец данной, метод removeAll(Collection coll) удаляет из коллекции все элементы, которые присутствуют также в коллекции coll, а метод retainAll(Collection coll) поступает наоборот, удаляя все элементы, кроме содержащихся в coll.

Метод toArray() возвращает все элементы коллекции в виде массива.

Рассмотрим основные интерфейсы, относящиеся к Collection (рисунок 1).

Рисунок 1

Как видно с диаграммы, интерфейс Collection не является базовым. Интерфейс Collection расширяет интерфейс Iterable, у которого есть только один метод iterator(). Это значит что любая коллекция, которая является наследником Iterable должна возвращать итератор.

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

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

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

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

3) Queue – очередь. Это коллекция, предназначенная для хранения элементов в порядке, нужном для их обработки. В дополнение к базовым операциям интерфейса Collection, очередь предоставляет дополнительные операции вставки, получения и контроля.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: