Карты в Java являются основными строительными блоками фреймворка Collections. Следующие руководства научат нас основам работы с различными картами в Java.
1. Основы
- Введение в Java HashMap
- Как работает HashMap в Java?
- Как клонировать HashMap – поверхностное и глубокое копирование
- Как синхронизировать HashMap
- Как объединить или объединить две карты
- Как сравнить два HashMap
- Получить подкарту из карты
- Создание вложенных карт
- Создание неизменяемых и немодифицируемых карт
2. Разница между
3. Классы карт
- Java IdentityHashMap
- Java ConcurrentMap
- Java WeakHashMap
- Карта дерева Java
- Java LinkedHashMap
- Java EnumMap
4. Продвинутые темы
- Разработка хорошего пользовательского ключа для HashMap
- Сравнение производительности различных способов итерации по HashMap
- Создание Java Map с ключами, нечувствительными к регистру
- Инвертирование карты
- Преобразовать объект в карту
- Преобразовать карту в массив, список или набор
5. Производительность
В следующей таблице показана относительная производительность различных реализаций интерфейса Map. Обратите внимание, что окончательный выбор класса Map должен в большей степени зависеть от функциональных требований приложения и свойств параллелизма. Например,
- HashMap предпочтительнее для простых случаев использования с небольшим количеством записей.
- EnumMap всегда(и только) следует использовать для отображения перечислений.
- Для сортированной карты используйте TreeMap, если безопасность потоков не требуется, в противном случае — ConcurrentSkipListMap.
Класс карты | получать | содержитКлюч | следующий |
---|---|---|---|
HashMap | О(1) | О(1) | О(ч/н) |
LinkedHashMap | О(1) | О(1) | О(1) |
IdentityHashMap | О(1) | О(1) | О(ч/н) |
EnumMap | О(1) | О(1) | О(1) |
Карта дерева | О(лог n) | О(лог n) | О(лог n) |
ConcurrentHashMap | О(1) | О(1) | О(ч/н) |
ConcurrentSkipListMap | О(лог n) | О(лог n) | О(1) |