Spec-Zone .ru
спецификации, руководства, описания, API
|
Базовые интерфейсы набора инкапсулируют различные типы наборов, которые показывают в числе ниже. Эти интерфейсы позволяют наборам управляться независимо от деталей их представления. Базовые интерфейсы набора являются основой Платформы Наборов Java. Как можно видеть в следующем числе, базовые интерфейсы набора формируют иерархию.
Базовые интерфейсы набора.
A Set
специальное предложение отчасти Collection
, a SortedSet
специальное предложение отчасти Set
, и т.д. Отметьте также, что иерархия состоит из двух отличных деревьев — a Map
не истина Collection
.
Отметьте, что все базовые интерфейсы набора универсальны. Например, это - объявление Collection
интерфейс.
public interface Collection<E>...
<E>
синтаксис говорит Вам, что интерфейс универсален. Когда Вы объявляете a Collection
экземпляр можете и следует определить тип объекта, содержавшегося в наборе. Определение типа позволяет компилятору проверять (во время компиляции), что тип объекта, который Вы помещаете в набор, корректен, таким образом уменьшая ошибки во времени выполнения. Для получения информации об универсальных типах см. Обобщения (Обновленный) урок.
Когда Вы понимаете, как использовать эти интерфейсы, Вы будете знать большинство того, что там должен знать о Платформе Наборов Java. Эта глава обсуждает общие руководящие принципы для эффективного использования интерфейсов, включая то, когда использовать который интерфейс. Вы также изучите идиомы программирования для каждого интерфейса, чтобы помочь Вам вытащить наиболее из этого.
Чтобы сохранить число базовых интерфейсов набора управляемым, платформа Java не обеспечивает отдельные интерфейсы для каждой разновидности каждого типа набора. (Такие разновидности могли бы включать неизменный, фиксированный размер, и только добавленный.) Вместо этого операции модификации в каждом интерфейсе называются дополнительными — данная реализация может выбрать не поддерживать все операции. Если недопустимая операция вызывается, набор бросает UnsupportedOperationException
. Реализации ответственны за документирование, которое из дополнительных операций они поддерживают. Все реализации платформы Java общего назначения поддерживают все дополнительные операции.
Следующий список описывает базовые интерфейсы набора:
Collection
— корень иерархии набора. Набор представляет группу объектов, известных как ее элементы. Collection
интерфейс является наименьшим количеством общего знаменателя, который реализуют все наборы, и используется, чтобы раздать наборы и управлять ими, когда максимальная общность требуется. Некоторые типы наборов позволяют двойные элементы, и другие не делают. Некоторым упорядочивают, и другим неупорядочивают. Платформа Java не обеспечивает прямых реализаций этого интерфейса, но обеспечивает реализации более определенных подынтерфейсов, такой как Set
и List
. Также см. раздел Set
— набор, который не может содержать двойные элементы. Этот интерфейс моделирует математическую абстракцию набора и используется, чтобы представить наборы, такие как карты, включающие покерную комбинацию, курсы, составляющие расписание студента, или процессы, работающие на машине. См. также раздел Интерфейса Набора.List
— упорядоченный набор (иногда называемый последовательностью). List
s может содержать двойные элементы. Пользователь a List
обычно имеет точный контроль, где в списке каждый элемент вставляется и может получить доступ к элементам их целым числом, индексируют (позиция). Если Вы использовали Vector
, Вы знакомы с общей разновидностью List
. Также см. раздел Интерфейса Списка.Queue
— набор, используемый, чтобы содержать многократные элементы до обработки. Помимо основного Collection
операции, a Queue
обеспечивает дополнительную вставку, экстракцию, и инспекционные операции. Очереди обычно, но делают не обязательно, упорядочивают элементы в FIFO (сначала - в, сначала) способ. Среди исключений приоритетные очереди, которые упорядочивают элементы согласно предоставленному компаратору или естественному упорядочиванию элементов. Безотносительно используемого упорядочивания глава очереди является элементом, который был бы удален звонком remove
или poll
. В очереди FIFO все новые элементы вставляются в хвосте очереди. Другие виды очередей могут использовать различные правила размещения. Каждый Queue
реализация должна определить свои свойства упорядочивания. Также см. раздел Интерфейса Очереди.
Map
— объект, который отображает ключи на значения. A Map
не может содержать делают дубликаты ключа; каждый ключ может отобразиться на самое большее одно значение. Если Вы использовали Hashtable
, Вы уже знакомы с основами Map
. Также см. раздел Интерфейса Карты.Последние два базовых интерфейса набора являются просто сортированными версиями Set
и Map
:
SortedSet
— a Set
это поддерживает его элементы в порядке возрастания. Несколько дополнительных операций обеспечиваются, чтобы использовать в своих интересах упорядочивание. Сортированные наборы используются для естественно упорядоченных наборов, таких как списки слов и списки членов. Также см. раздел Интерфейса SortedSet.SortedMap
— a Map
это поддерживает его отображения в возрастающем ключевом порядке. Это Map
аналог SortedSet
. Сортированные карты используются для естественно упорядоченных наборов пар ключ/значение, таких как словари и телефонные справочники. Также см. раздел Интерфейса SortedMap.Чтобы понять, как сортированные интерфейсы поддерживают порядок своих элементов, см. Объект Упорядочить раздел.