Коллекции List, Set и Queue имеют много схожего, поэтому их общие методы вынесены в отдельный суперинтерфейс Collection.
Object
—AbstractCollection ■* Collection
—AbstractList Ч- - - - ^
^Vector -*r - ~
LStack
—AbstractSet 4----- = = - Set—
—HashSet ~ ~
LLinkedHashSet
_ TreeSet __ SortedSet —
NavigableSet
—AbstractQueue -4- ----- - Queue -ArrayBlockingQueue BlockingQueue
- ConcurrentLinkedQueue
- DelayQueue
- LinkedBlockingQueue
- PriorityBlockingQueue
- PriorityQueue n
eque
^LinkedBlockingDeque BlockingDeque -J
_ArrayDeque
Рис. 6.3.Иерархия классов и интерфейсов-коллекций
Интерфейс Map не входит в эту иерархию — по мнению разработчиков Java Collections Framework, отображения типа Map не являются коллекциями. Они показаны на рис. 6.4.
Object
Map
У
У
SortedMap —
' NavigableMap J
Map.Entry
-AbstractMap - 4- — — — HashMap
L- LinkedHashMap - 4-WeakHashMap —TreeMap _
-Arrays
Bitset ^
Collections
Dictionary — Hashtable — Properties
Рис. 6.4.Иерархия классов и интерфейсов-отображений
Все интерфейсы, входящие в Java Collections Framework, — настраиваемые (см. главу 4), их можно использовать как шаблоны классов, хранящих ссылки на элементы одного и того же типа.
Посмотрим, что, по мнению разработчиков Java API, должно содержаться в этих коллекциях.
Интерфейс Collection
Интерфейс Collection из пакета java.util описывает общие свойства коллекций List, Set и Queue. Он содержит методы добавления и удаления элементов, проверки и преобразования элементов:
□ boolean add (Obj ect obj) — добавляет элемент obj в конец коллекции; возвращает false, если такой элемент в коллекции уже есть, а коллекция не допускает повторяющиеся элементы; возвращает true, если добавление прошло удачно;
□ boolean addAll(Collection coll) - добавляет все элементы коллекции coll в конец
данной коллекции;
□ void clear () — удаляет все элементы коллекции;
□ boolean contains(Object obj) — проверяет наличие элемента obj в коллекции;
□ boolean containsAll(Collection coll) — проверяет наличие всех элементов коллекции coll в данной коллекции;
□ boolean isEmpty() — проверяет, пуста ли коллекция;
□ Iterator iterator () — возвращает итератор данной коллекции;
□ boolean remove (Obj ect obj) — удаляет указанный элемент из коллекции; возвращает false, если элемент не найден, true, если удаление прошло успешно;
□ boolean removeAll(Collection coll) - удаляет элементы указанной коллекции, лежа
щие в данной коллекции;
□ boolean retainAll(Collection coll) -удаляет все элементы данной коллекции, кроме
элементов коллекции coll;
□ int size() — возвращает количество элементов в коллекции;
□ Obj ect [ ] toArray () — возвращает все элементы коллекции в виде массива;
□ Obj ect [ ] toArray (Obj ect[] a) — записывает все элементы коллекции в массив a, если в нем достаточно места.
Интерфейс List
Интерфейс List из пакета java.util, расширяющий интерфейс Collection, описывает методы работы с упорядоченными коллекциями. Иногда их называют последовательностями (sequence). Элементы такой коллекции пронумерованы, начиная от нуля, к ним можно обратиться по индексу. В отличие от коллекции Set элементы коллекции List могут повторяться.
Класс Vector — одна из реализаций интерфейса List.
Интерфейс List добавляет к методам интерфейса Collection методы, использующие индекс index элемента:
□ void add (int index, Object obj) - вставляет элемент obj в позицию index; старые
элементы, начиная с позиции index, сдвигаются, их индексы увеличиваются на единицу;
□ boolean addAll(int index, Collection coll) — вставляет все элементы коллекции coll;
□ Object get(int index) возвращает элемент, находящийся в позиции index;
□ int indexOf (Obj ect obj) — возвращает индекс первого появления элемента obj в коллекции;
□ int lastIndexOf (Object obj) — возвращает индекс последнего появления элемента obj в коллекции;
□ Listiterator listiterator() — возвращает итератор коллекции;
□ ListIterator listIterator(int index) — возвращает итератор конца коллекции от позиции index;
□ Object set (int index, Object obj ) - заменяет элемент, находящийся в позиции index,
Читать дальше
Конец ознакомительного отрывка
Купить книгу