Коллекции — самая частая тема Java-собеседований. Спрашивают не «какие бывают», а как устроены: что внутри ArrayList и HashMap, какая сложность операций, почему LinkedList почти никогда не нужен, что такое fail-fast итератор.
Коллекции
Collections Framework — списки, хеш-таблицы, сортированные структуры, очереди и итераторы изнутри.
Темы этапа
- ArrayList и LinkedList Основа
Динамический массив и связный список изнутри, сложность операций и выбор.
- HashMap, HashSet и LinkedHashMap Основа
Бакеты, коллизии, treeify, resize, порядок обхода и LRU-кэш.
- TreeMap, очереди и итераторы Основа
Сортированные структуры, ArrayDeque и PriorityQueue, fail-fast итераторы.
Вопросы с собеседований
Смотреть всеЧем ArrayList отличается от LinkedList и что брать по умолчанию?Junior
ArrayList — динамический массив: доступ по индексу O(1), добавление в конец амортизированно O(1). LinkedList — двусвязный список: O(1) только при вставке или удалении у уже известного узла. По умолчанию — ArrayList.
Полный разборНужна структура с быстрым поиском по ключу, которая при обходе отдаёт элементы в порядке их добавления. Что выбрать?Middle
LinkedHashMap: поиск по ключу O(1) и обход в порядке добавления.
Полный разборЧто верно про иерархию Collections Framework?Junior
Iterable → Collection → List, Set, Queue; Map — отдельная ветвь, не Collection: она хранит пары, а не элементы.
Полный разборЧто верно про неизменяемые и защитные коллекции?Middle
List.of и List.copyOf — настоящие неизменяемые коллекции, null запрещён. Collections.unmodifiableList — представление: через исходную ссылку список по-прежнему меняется. Объекты внутри в обоих случаях остаются изменяемыми.
Полный разборЧем List отличается от Set?Junior
List — упорядоченная последовательность с дубликатами и доступом по индексу; Set — только уникальные элементы.
Полный разборКак выбираешь структуру данных под задачу? Проведи рассуждение на примере: нужно хранить сессии пользователей с быстрым поиском по id и обходом в порядке добавления.Middle
Метод: какие операции горячие и как часто → сложность каждой у кандидатов → память и конкурентность. Поиск по id + обход в порядке добавления → LinkedHashMap; при доступе из многих потоков — ConcurrentHashMap плюс отдельная очередь порядка или синхронизация.
Полный разборРазборы темы
- Collections Framework: карта и выбор структуры
Иерархия интерфейсов, сложности операций основных структур, неизменяемые коллекции и принцип выбора по паттерну доступа.
Разбор собеседования с sotto
После собеседования sotto разбирает разговор: оценка, каждый вопрос — хорошо, частично или слабо, чего не хватило в ответе и над чем поработать к следующему разу. Первые 30 минут бесплатно.