Page 134 - 6253
P. 134
2. Карта – набір об’єктів у вигляді пари «ключ-значення», з можливістю
вибірки по ключу.
Коли вийшов комплект JDK 5, в інфраструктурі Collections Framework сталося
декілька фундаментальних змін, що значно підвищили її продуктивність та
спростило застосування. До цих змін можна віднести додавання узагальнень,
автоматична упаковка і розпаковка, а також стиль «for-each» циклу for.
Узагальнення – це метод забезпечення безпеки типів даних. Раніше усі
колекції зберігали посилання на клас Object, що означало, що будь-яка колекція
могла зберігати об’єкти будь-якого типу. Таким чином, можна було ненавмисно
зберегти несумісні типи даних в одній колекції, що призводило до помилок
несумісності типів під час виконання. З узагальненими визначеннями можна явно
вказати тип даних, що зберігаються в колекції, і, таким чином, никнути помилок
часу виконання.
Механізм автоматичної упаковки та розпаковки полегшив процедуру
зберігання елементарних типів даних в колекціях. В структурі колекції можуть
зберігатися тільки посилання на об’єкти, але не елементарні значення. Раніше, для
зберігання в колекції значень елементарних типів, необхідно було вручну упакувати
їх в об’єкт-оболонку відповідного типу. Під час витягування значення, треба було
виконати його явне приведення до відповідного елементарного типу. Завдяки
механізму автоматичної упаковки та розпаковки відпала необхідність у ручному
виконанню описаних вище операцій.
Усі класи колекцій модифіковані таким чином, що реалізують інтерфейс
Iterable. Це означає, що можна перебрати вміст колекції, використовуючи цикл for у
стилі «for-each». Раніше для перебору колекції необхідно було використовувати
ітератор, який є програмною реалізацією циклу.
6.3 Інтерфейси колекцій
У мові Java визначено декілька інтерфейсів, які визначають фундаментальну
природу класів колекцій. Інтерфейси, що підтримують колекції перелічено у таблиці
6.1.
133