Загружаем изображение…

Реальные примеры использования коллекций.



Именно такие кейсы часто обсуждают на собеседованиях.

ArrayList
• Список пользователей, полученный из БД.
• Результаты поиска товаров.
• DTO, возвращаемые REST API.

LinkedList
• Реализация двусторонней очереди (Deque).
• История операций с частым добавлением в начало и конец.
• Буфер обработки сообщений (хотя чаще используют ArrayDeque).

Vector
• Поддержка старого legacy-кода.
• Старые библиотеки и API, требующие Vector.

HashSet
• Проверка уникальности email или логинов.
• Хранение уникальных UUID уже обработанных событий.
• Исключение дубликатов из списка.

LinkedHashSet
• Удаление дубликатов с сохранением порядка.
• Список недавно просмотренных объектов без повторов.
• Уникальный список тегов в порядке добавления.

TreeSet
• Таблица лидеров с автоматической сортировкой.
• Хранение уникальных дат или временных меток.
• Поиск ближайшего большего или меньшего значения (higher(), lower()).

EnumSet
• Набор разрешений (READ, WRITE, DELETE).
• Доступные дни недели.
• Поддерживаемые типы файлов или форматов.

PriorityQueue
• Планировщик задач по приоритету.
• Очередь обработки заказов.
• Алгоритм Дейкстры и другие алгоритмы поиска пути.

ArrayDeque
• Реализация стека вместо Stack.
• Очередь задач в одном потоке.
• Обход дерева или графа (BFS/DFS).

HashMap
• UUID → User.
• Кэш объектов по идентификатору.
• Хранение настроек (ключ → значение).

LinkedHashMap
• LRU-кэш (accessOrder = true).
• JSON, где важно сохранить порядок полей.
• Конфигурация приложения с сохранением порядка параметров.

TreeMap
• Хранение цен по диапазонам.
• Расписание событий по времени.
• Курсы валют с возможностью быстро найти ближайшее значение.

Hashtable
• Только поддержка legacy-кода.
• Старые библиотеки Java, использующие Hashtable.

EnumMap
• Status → обработчик.
• OperationType → стратегия.
• DayOfWeek → рабочее время.

WeakHashMap
• Кэш объектов, которые можно автоматически удалить GC.
• Хранение метаданных, привязанных к объектам.
• Кэш рефлексии или прокси без риска утечки памяти.

IdentityHashMap
• Сериализация графов объектов.
• Отслеживание уже посещённых объектов при обходе графа.
• Инструменты анализа объектов, где важна идентичность (==), а не equals().

Что чаще всего используется в реальных Spring Boot проектах
Если посмотреть на типичный корпоративный проект, распределение будет примерно таким:

⭐️⭐️⭐️⭐️⭐️ ArrayList
⭐️⭐️⭐️⭐️⭐️ HashMap
⭐️⭐️⭐️⭐️ HashSet
⭐️⭐️⭐️⭐️ ArrayDeque
⭐️⭐️⭐️ LinkedHashMap
⭐️⭐️ TreeMap
⭐️⭐️ TreeSet
⭐️⭐️ EnumMap
⭐️ EnumSet
⭐️ WeakHashMap
⭐️ IdentityHashMap

Почти никогда — LinkedList, Vector, Hashtable (в основном в legacy-проектах).

Именно первые четыре коллекции (ArrayList, HashMap, HashSet и ArrayDeque) составляют подавляющее большинство случаев использования в современном Java-коде.
Просмотры: 74
Открыть в MAX Сообщить о неточности

Репосты публикации

Публикация канала

Сообщить о неточности

Опишите, что нужно исправить. Если есть источник, добавьте ссылку.

Вы покидаете datool.ru

Ссылка ведёт на внешний сайт. datool.ru не отвечает за его содержимое — проверьте адрес, прежде чем вводить пароли или платёжные данные.

Переход через 10 с

Перейти