Массивы и списки 😕 база
Чем массив отличается от ArrayList?
Массив — фиксированной длины, ArrayList растёт сам: внутри тот же массив, который пересоздаётся побольше при заполнении.
Массивы и списки 😕 база
Почему доступ по индексу в массиве — O(1)?
Элементы лежат в памяти подряд: адрес элемента вычисляется формулой (начало + индекс × размер), без перебора.
Массивы и списки 🤓 уверенно
Чем LinkedList отличается от ArrayList по устройству?
LinkedList — цепочка узлов со ссылками друг на друга: вставка в начало O(1), но доступ по индексу — O(n), нужно идти по цепочке.
Массивы и списки 🤓 уверенно
Что выбрать по умолчанию: ArrayList или LinkedList?
ArrayList: непрерывная память дружит с кэшем процессора, и на практике он быстрее почти во всех сценариях.
Массивы и списки 🧐 глубоко
Как ArrayList растёт при добавлении и что такое амортизированная сложность O(1)?
Массивы и списки 🧐 глубоко
Когда вставка в середину ArrayList становится проблемой?
Массивы и списки 😎 про
Почему LinkedList почти всегда проигрывает даже там, где теоретически должен выигрывать?
Массивы и списки 😎 про
Как устроен ArrayDeque и почему он лучше LinkedList для очереди?
Хэш-таблицы 😕 база
Как хэш-таблица находит значение за O(1)?
Ключ через hashCode превращается в номер корзины массива — сразу «прыгаем» в нужное место, не перебирая все элементы.
Хэш-таблицы 😕 база
Что такое коллизия?
Два разных ключа попали в одну корзину. HashMap хранит их там списком и различает через equals.
Хэш-таблицы 🤓 уверенно
Зачем нужен контракт equals/hashCode?
Если equals говорит «объекты равны», hashCode обязан совпадать — иначе HashMap положит равные ключи в разные корзины и потеряет данные.
Хэш-таблицы 🤓 уверенно
Чем HashSet отличается от HashMap?
HashSet — множество уникальных значений; внутри это HashMap, где элементы хранятся как ключи.
Хэш-таблицы 🧐 глубоко
Что происходит с HashMap при заполнении (load factor, resize)?
Хэш-таблицы 🧐 глубоко
Почему в Java 8 корзина превращается из списка в дерево?
Хэш-таблицы 😎 про
Чем опасен изменяемый объект в роли ключа HashMap?
Хэш-таблицы 😎 про
Как работает ConcurrentHashMap без блокировки всей таблицы?
Стек и очередь 😕 база
Чем стек отличается от очереди?
Стек — LIFO: последний вошёл, первый вышел (стопка тарелок). Очередь — FIFO: первый вошёл, первый вышел (очередь в магазине).
Стек и очередь 😕 база
Где в Java используется стек «под капотом»?
Стек вызовов методов: каждый вызов кладёт фрейм, возврат — снимает. StackOverflowError — переполнение при бесконечной рекурсии.
Стек и очередь 🤓 уверенно
Какими классами реализовать стек и очередь в Java?
ArrayDeque для обоих: push/pop для стека, offer/poll для очереди. Класс Stack устарел.
Стек и очередь 🤓 уверенно
Что такое PriorityQueue?
Очередь, где первым выходит не самый старый, а самый «приоритетный» элемент (по компаратору). Внутри — куча (heap).
Стек и очередь 🧐 глубоко
Приведи классическую задачу, которая решается стеком.
Стек и очередь 🧐 глубоко
Что такое Deque и какие операции он поддерживает?
Стек и очередь 😎 про
Как устроена куча (binary heap) внутри PriorityQueue?
Стек и очередь 😎 про
Чем BlockingQueue отличается от обычной очереди и где применяется?