Page 134 - 6253
P. 134

2. Карта  –  набір  об’єктів  у  вигляді  пари  «ключ-значення»,  з  можливістю

            вибірки по ключу.

                    Коли вийшов комплект JDK 5, в інфраструктурі Collections Framework сталося

            декілька  фундаментальних  змін,  що  значно  підвищили  її  продуктивність  та

            спростило  застосування.  До  цих  змін  можна  віднести  додавання  узагальнень,

            автоматична упаковка і розпаковка, а також стиль «for-each» циклу for.

                    Узагальнення  –  це  метод  забезпечення  безпеки  типів  даних.  Раніше  усі

            колекції  зберігали  посилання  на  клас  Object,  що  означало,  що  будь-яка  колекція

            могла  зберігати  об’єкти  будь-якого  типу.  Таким  чином,  можна  було  ненавмисно

            зберегти  несумісні  типи  даних  в  одній  колекції,  що  призводило  до  помилок

            несумісності  типів  під час  виконання.  З  узагальненими  визначеннями можна  явно

            вказати  тип  даних,  що  зберігаються  в  колекції,  і,  таким  чином,  никнути  помилок

            часу виконання.

                    Механізм  автоматичної  упаковки  та  розпаковки  полегшив  процедуру

            зберігання  елементарних  типів  даних  в  колекціях.  В  структурі  колекції  можуть

            зберігатися тільки посилання на об’єкти, але не елементарні значення. Раніше, для

            зберігання в колекції значень елементарних типів, необхідно було вручну упакувати

            їх в об’єкт-оболонку відповідного типу. Під час витягування значення, треба було

            виконати  його  явне  приведення  до  відповідного  елементарного  типу.  Завдяки

            механізму  автоматичної  упаковки  та  розпаковки  відпала  необхідність  у  ручному

            виконанню описаних вище операцій.

                    Усі  класи  колекцій  модифіковані  таким  чином,  що  реалізують  інтерфейс

            Iterable. Це означає, що можна перебрати вміст колекції, використовуючи цикл for у

            стилі  «for-each».  Раніше  для  перебору  колекції  необхідно  було  використовувати

            ітератор, який є програмною реалізацією циклу.



                    6.3 Інтерфейси колекцій


                    У мові Java визначено декілька інтерфейсів, які визначають фундаментальну

            природу класів колекцій. Інтерфейси, що підтримують колекції перелічено у таблиці

            6.1.






                                                              133
   129   130   131   132   133   134   135   136   137   138   139