Студопедия
Новини освіти і науки:
МАРК РЕГНЕРУС ДОСЛІДЖЕННЯ: Наскільки відрізняються діти, які виросли в одностатевих союзах


РЕЗОЛЮЦІЯ: Громадського обговорення навчальної програми статевого виховання


ЧОМУ ФОНД ОЛЕНИ ПІНЧУК І МОЗ УКРАЇНИ ПРОПАГУЮТЬ "СЕКСУАЛЬНІ УРОКИ"


ЕКЗИСТЕНЦІЙНО-ПСИХОЛОГІЧНІ ОСНОВИ ПОРУШЕННЯ СТАТЕВОЇ ІДЕНТИЧНОСТІ ПІДЛІТКІВ


Батьківський, громадянський рух в Україні закликає МОН зупинити тотальну сексуалізацію дітей і підлітків


Відкрите звернення Міністру освіти й науки України - Гриневич Лілії Михайлівні


Представництво українського жіноцтва в ООН: низький рівень культури спілкування в соціальних мережах


Гендерна антидискримінаційна експертиза може зробити нас моральними рабами


ЛІВИЙ МАРКСИЗМ У НОВИХ ПІДРУЧНИКАХ ДЛЯ ШКОЛЯРІВ


ВІДКРИТА ЗАЯВА на підтримку позиції Ганни Турчинової та права кожної людини на свободу думки, світогляду та вираження поглядів



Інтерфейс Collection

Даний інтерфейс є коренем всієї ієрархії класів-колекцій. Він визначає базову функціональність будь-якої колекції - набір методів, які дозволяють додавати, видаляти, вибирати елементи колекції. Класи, які реалізують інтерфейс Collection, можуть містити дублікати й порожні (null) значення.

AbstractCollection, як абстрактний клас, є основою для створення конкретних класів колекцій і містить реалізацію деяких методів, визначених в інтерфейсі Collection.

Інтерфейс Set

Класи, які реалізують цей інтерфейс, не допускають наявності дублікатів. У колекції цього типу дозволена наявність тільки одного посилання типу null. Інтерфейс Set розширює інтерфейс Collection, таким чином, будь-який клас, який імлементує Set, реалізує всі методи, визначені в Collection. Будь-який об'єкт, що додається в Set, повинен реалізувати метод equals, щоб його можна було порівняти з іншими.

AbstractSet, будучи абстрактним класом, являє собою основу для реалізації різних варіантів інтерфейсу Set.

Інтерфейс List

Класи, що реалізують цей інтерфейс, містять упорядковану послідовність об'єктів (об'єкти зберігаються в тому порядку, у якому вони були додані). Інтерфейс List розширює інтерфейс Collection, і будь-який клас, який імплементує List, реалізує всі методи, визначені в Collection, і в той же час вводяться нові методи, які дозволяють додавати й видаляти елементи зі списку. List також забезпечує ListIterator, що дозволяє переміщатися як уперед, так і назад по елементах списку.

AbstractList, як абстрактний клас, являє собою основу для реалізації різних варіантів інтерфейсу List.


Рисунок 7.1 Основні типи для роботи з колекціями

Інтерфейс Map

Класи, які реалізують цей інтерфейс, зберігають неупорядкований набір об'єктів парами ключ/значення. Кожний ключ повинен бути унікальним. Порядок проходження пар ключ/значення не визначене.

Інтерфейс Map не розширює інтерфейс Collection. AbstractMap, будучи абстрактним класом, являє собою основу для реалізації різних варіантів інтерфейсу Map.

Інтерфейс SortedSet

Цей інтерфейс розширює Set, вимагаючи, щоб вміст набору був упорядкований. Такі колекції можуть містити об'єкти, які реалізують інтерфейс Comparable, або можуть рівнятися з використанням зовнішнього Comparator.

Інтерфейс SortedMap

Цей інтерфейс розширює Map, вимагаючи, щоб уміст колекції був упорядкований за значеннями ключів.

Інтерфейс Iterator

Всі класи, які реалізують інтерфейс Collection, повинні реалізувати метод iterator, що повертає об'єкт, що реалізує інтерфейс Iterator. Iterator досить схожий на Enumeration, з тією лише відмінністю, що в ньому визначений метод remove, що дозволяє видалити об'єкт із колекції, для якої Iterator був створений.

5 Конкретні класи колекцій

java.util.ArrayList - цей клас розширює AbstractList і досить схожий на клас Vector. Він також динамічно розширюється, як Vector, однак його методи не є синхронізованими, внаслідок чого операції з ним виконуються швидше.

java.util.LinkedList - являє собою реалізацію інтерфейсу List. Він реалізує всі методи інтерфейсу List, крім цього додаються ще нові методи, які дозволяють додавати, видаляти й одержувати елементи наприкінці й початку списку. LinkedList є двоїв’язним списком і дозволяє переміщатися як від початку в кінець списку, так і навпаки. LinkedList зручно використовувати для організації стека.

Класи LinkedList і ArrayList мають схожу функціональність. Однак з погляду продуктивності вони відрізняються. Так, в ArrayList помітно швидше (приблизно на порядок) здійснюються операції проходу за всім списком (ітерації) і одержання даних. LinkedList майже на порядок швидше виконує операції видалення й додавання нових елементів.

java.util.Hashtable - розширює абстрактний клас Dictionary. Він призначений для зберігання об'єктів у вигляді пар ключ/значення. Із самої назви випливає, що Hаshtable використовує алгоритм хешування для збільшення швидкості доступу до даних.

java.util.HashMap - цей клас розширює AbstractMap і досить схожий на клас Hashtable. HashMap призначений для зберігання пар об'єктів ключ/значення. Як для ключів, так і для елементів допускаються значення типу null. Порядок зберігання елементів у цій колекції не збігається з порядком їхнього додавання. Порядок елементів у колекції також може мінятися в часі. HashMap забезпечує постійний час доступу для операцій get і put.

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

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

java.util.TreeMap - розширює клас AbstractMap і реалізує інтерфейс SortedMap. TreeMap містить ключі в порядку зростання. Використовується або натуральне порівняння ключів, або повинен бути реалізований інтерфейс Comparable. Реалізація алгоритму пошуку забезпечує логарифмічну залежність часу виконання основних операцій (containsKey, get, put і remove). Заборонено застосування null значень для ключів. При використанні дублікатів ключів посилання на об'єкт, збережений з таким же ключем, буде втрачена.


Читайте також:

  1. Art-collections.
  2. Cisco Packet Tracer - Знайомство з програмою. Інтерфейс
  3. Look at this form of a music collection. Label the data types with words from B opposite.
  4. WEB-документи та CGI-інтерфейси
  5. Аналіз паралельного інтерфейсу з DSP-процесорами: читання даних з АЦП, що під’єднаний до адресного простору пам’яті
  6. Аналіз послідовного інтерфейсу з DSP-процесорами
  7. Багаторівневий підхід. Протокол. Інтерфейс. Стек протоколів.
  8. Визначення конфігурації мережевих інтерфейсів
  9. Віконний, графічний інтерфейс.
  10. Внутрішні GSM - інтерфейси
  11. Електричний інтерфейс RS-232C
  12. Ієрархія мережевих інтерфейсів




Переглядів: 2198

<== попередня сторінка | наступна сторінка ==>
Клас Date | Ключове слово abstract

Не знайшли потрібну інформацію? Скористайтесь пошуком google:

  

© studopedia.com.ua При використанні або копіюванні матеріалів пряме посилання на сайт обов'язкове.


Генерація сторінки за: 0.01 сек.