TGViewer
Java Portal | Программирование Java Portal | Программирование @java_iibrary · 11.6K subscribers
Post #1485 2.35K
Все типы Map, которые стоит знать в Java

HashMap
↳ Не сохраняет порядок элементов. Не потокобезопасен. Допускает один null ключ и несколько null значений. Основан на хеш-таблице. Используется как структура общего назначения с быстрым доступом к данным.

LinkedHashMap
↳ Сохраняет порядок вставки элементов. Не потокобезопасен. Допускает null ключи и значения. Построен на основе хеш-таблицы и связанного списка. Подходит, когда важен порядок добавления элементов.

TreeMap
↳ Хранит элементы в отсортированном порядке — по натуральному порядку или через Comparator. Не потокобезопасен. Не допускает null ключей, но допускает null значения. Реализован на базе красно-черного дерева. Используется, когда нужен доступ к отсортированным ключам.

Hashtable
↳ Не гарантирует порядок. Является потокобезопасной (устаревший подход). Не допускает ни null ключей, ни null значений. Построен на хеш-таблице. Используется в легаси-коде, где требуется синхронизация.

ConcurrentHashMap
↳ Не сохраняет порядок. Потокобезопасен (современная реализация). Не допускает null ключей и значений. Построен на сегментированной хеш-таблице (в Java 7) или использует блокировку бакетов (в Java 8+). Используется для высокопроизводительного конкурентного доступа.

WeakHashMap
↳ Не сохраняет порядок. Не потокобезопасен. Допускает null ключи и значения. Использует хеш-таблицу со слабыми ссылками на ключи. Применяется для кэшей, где ключи могут быть удалены сборщиком мусора, если больше нигде не используются.

IdentityHashMap
↳ Не сохраняет порядок. Не потокобезопасен. Допускает null ключи и значения. Реализован на основе хеш-таблицы. Отличается тем, что сравнивает ключи по ссылке (==), а не по значению (equals()), что может быть полезно в специфических случаях.

EnumMap
↳ Сохраняет порядок enum-констант. Не потокобезопасен. Не допускает null ключей, но допускает null значения. Реализован на основе массива. Эффективен для отображения enum-ключей на значения.


👉 Java Portal
  • ❤ 6
  • 🤣 1
More from @java_iibrary
  1. Oct 2, 2026Процесс ≠ Поток ≠ Виртуальный поток. Эти понятия часто путают, хотя они решают разные зада…
  2. Oct 1, 2026Когда Java-стектрейс оказался длиннее контекста ИИ 👀 👉 Java Portal
  3. Oct 1, 2026Spring Boot 4: приближение срока истечения SSL-сертификатов больше не меняет статус health…
  4. Sep 30, 2026Почему один и тот же Java-файл .class запускается на Windows, Linux и macOS без перекомпил…
  5. Sep 30, 2026Docker прост, пока всё работает. Но что делать, если контейнер постоянно перезапускается,…
  6. Sep 29, 2026Эволюция языков программирования 1940-е → Машинный код ⬇️ 1950-е → Ассемблер ⬇️ 1960-е → F…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →