Java from EPAM : учебно-методическое пособие [Игорь Николаевич Блинов] (pdf) читать постранично, страница - 45

Книга в формате pdf! Изображения и текст могут не отображаться!


 [Настройки текста]  [Cбросить фильтры]

объект коллекции
может быть доступен из различных потоков, что наиболее естественно для распределенных приложений, возможно использование коллекции из Java 1.
320

КОЛЛЕКЦИИ И STREAM API
В Java 5 в новом пакете java.util.concurrent появились ограниченно потокобезопасные коллекции, гарантирующие более высокую производительность
в многопоточной среде для конкурирующих потоков.
Так как в коллекциях при практическом программировании хранится набор
ссылок на объекты одного типа, следует обезопасить коллекцию от появления
ссылок на другие, не разрешенные логикой приложения типы. Такие ошибки
при использовании нетипизированных коллекций выявляются на стадии выполнения, что повышает трудозатраты на исправление и верификацию кода. Поэтому,
начиная с версии Java SE 5, коллекции стали типизированными или generic.
Более удобным стал механизм работы с коллекциями, а именно:
• предварительное сообщение компилятору о типе ссылок, которые будут храниться в коллекции, при этом проверка осуществляется на этапе компиляции;
• отсутствие необходимости постоянно преобразовывать возвращаемые по
ссылке объекты (тип Object) к требуемому типу.
Структура коллекций характеризует способ, с помощью которого программы Java обрабатывают группы объектов. Так как Object — суперкласс для всех
классов, то в коллекции можно хранить объекты любого типа, кроме базовых.
Коллекции — это динамические массивы, связные списки, деревья, множества, хэш-таблицы, стеки, очереди.
Интерфейсы коллекций:
Map — карта отображения вида «ключ-значение»;
Collection — основной интерфейс коллекций, вершина иерархии коллекций List, Set. Также наследует интерфейс Iterable;
List — специализирует коллекции для обработки упорядоченного набора элементов;
Set — множество, содержащее уникальные элементы;
Queue — очередь, где элементы добавляются в один конец списка, а извлекаются из другого конца.
Все классы коллекций реализуют интерфейсы Serializable, Cloneable (кроме WeakHashMap).

«interface»
Set

«interface»
Collection

«interface»
Map

«interface»
List

«interface»
Queue

Рис. 11.1. Базовая иерархия коллекций

«interface»
Deque

321

JAVA FROM EPAM
В интерфейсе Collection определены методы, которые работают на всех
коллекциях:
boolean add(E obj) — добавляет obj к вызывающей коллекции и возвращает
true, если объект добавлен, и false, если obj уже элемент коллекции;
boolean remove(Object obj) — удаляет obj из коллекции;
boolean addAll(Collection