Українська
Підсумки
Висновки
Масив має фіксований розмір, а спеціалізовані IntArray і подібні типи уникають упаковки значень на JVM. Вміст масивів порівнюють через contentEquals, а прямокутність двовимірного масиву потрібно перевіряти окремо. Ієрархія колекцій розділяє читання й зміну, тому функції приймають мінімальний достатній інтерфейс. Інтерфейс лише для читання не робить об’єкт незмінним, а toList() створює знімок структури, але не копіює змінюваних елементів. Список зберігає порядок і дублікати, множина – унікальність за equals і hashCode, словник – одне значення для кожного ключа. Ключі й елементи хеш-структур мають залишатися стабільними за рівністю, а змінювати колекцію під час звичайного обходу не можна. ArrayDeque виражає стек і чергу, PriorityQueue – вибір за компаратором, який повинен визначати нічию. Структуру обирають за операціями, обсягом даних і контрактом власності, а перевіряють на порожньому наборі, межах, дублях і незалежності знімка.
Питання для самоперевірки
- Чим
Array<Int>відрізняється відIntArray? - Як порівняти вміст двох масивів?
- Чи гарантує
Array<IntArray>прямокутність? - Чому
valне робить список незмінним? - Яка різниця між живим поданням і знімком?
- Чим
removeвідрізняється відremoveAt? - Чому
subListможе бути небезпечним після зміни батька? - Який зв’язок між
equalsіhashCode? - Як розрізнити відсутній ключ і nullable-значення?
- Коли
getOrPutповторно викликає початкову функцію? - Як видаляти елементи під час обходу?
- Чому обхід PriorityQueue не є сортуванням?