Запропонувати правкуПокращити цю статтюДопрацюйте відповідь до «Яка мета патерну Iterator?». Ваші зміни проходять модерацію перед публікацією.Потрібне підтвердженняКонтентЩо ви змінюєте🇺🇸EN🇺🇦UAПереглядЗаголовок (UA)Коротка відповідь (UA)Мета патерну **Iterator (Ітератор)** - **надати єдиний спосіб послідовного обходу елементів колекції**, **не розкриваючи її внутрішню структуру**. **Ключове:** ітератор робить колекції зручними і універсальними у використанні, дозволяючи обходити їх без знання внутрішнього устрою.Показується над повною відповіддю для швидкого нагадування.Відповідь (UA)ЗображенняМета патерну **Iterator (Ітератор)** - **надати єдиний спосіб послідовного обходу елементів колекції**, **не розкриваючи її внутрішню структуру**. --- ### 1. **Суть ідеї** Замість того щоб клієнт напряму працював з масивами, списками чи деревами, ітератор бере на себе логіку переходу від елемента до елемента. Клієнту не потрібно знати: - як влаштована колекція, - як у ній зберігаються дані, - яка логіка переходу (за порядком, углиб, за фільтром тощо). Він просто використовує **єдиний інтерфейс**: ```java Iterator iterator = collection.iterator(); while (iterator.hasNext()) { Object item = iterator.next(); } ``` --- ### 2. **Навіщо потрібен** - Щоб **відокремити алгоритм обходу** від структури колекції. - Щоб **уніфікувати доступ** до елементів різних контейнерів (списків, дерев, хешів). - Щоб **підтримувати декілька способів обходу** без дублювання логіки. --- ### 3. **Переваги** - Інкапсуляція внутрішнього устрою колекції. - Можливість створювати **різні типи ітераторів** (прямий, зворотний, фільтрувальний). - Спрощення клієнтського коду - обхід завжди однаковий. --- ### 4. **Приклад (Java)** ```java List<String> list = List.of("A", "B", "C"); Iterator<String> it = list.iterator(); while (it.hasNext()) { System.out.println(it.next()); } ``` Клієнт не знає, що всередині `ArrayList` - масив; він просто послідовно отримує елементи. --- ### **Висновок** Патерн **Iterator** робить колекції **зручними і універсальними у використанні**, дозволяючи обходити їх **без знання внутрішнього устрою** і забезпечуючи **єдиний інтерфейс навігації** по елементах.Для рев’юераПримітка для модератора (необов’язково)Бачить лише модератор. Прискорює рев’ю.