Встречается на 4% собеседований по Java

В чем разница между HashMap и ConcurrentHashMap

HashMap не потокобезопасен, что может привести к ConcurrentModificationException при одновременной модификации. ConcurrentHashMap обеспечивает потокобезопасность без блокировки всей таблицы, используя сегментированные блокировки (Java 7) или CAS-операции (Java 8+).

Пример:

java
// HashMap - небезопасен в многопоточной среде
Map<String, Integer> hashMap = new HashMap<>();
// ConcurrentHashMap - потокобезопасен
Map<String, Integer> concurrentMap = new ConcurrentHashMap<>();

Ключевые отличия:

  • ConcurrentHashMap допускает одновременные чтения и ограниченные записи
  • Нет поддержки null ключей/значений в ConcurrentHashMap
  • Итераторы ConcurrentHashMap работают на моментальном снимке данных (weakly consistent)
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы