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

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

HashTable и HashMap — оба реализуют интерфейс Map, но есть ключевые различия:

  1. Потокобезопасность:
    • HashTable синхронизирован (потокобезопасен), но это снижает производительность.
    • HashMap не синхронизирован (быстрее, но требует внешней синхронизации в многопоточной среде).
  1. Null-значения:

    • HashTable не позволяет null ни в ключах, ни в значениях.
    • HashMap разрешает один null-ключ и множество null-значений.
  2. Наследование:

    • HashTable — устаревший класс (с Java 1.0).
    • HashMap — часть современной коллекции (с Java 1.2).

Пример:

java
HashMap<String, Integer> hashMap = new HashMap<>();
hashMap.put(null, 1); // ОК

Hashtable<String, Integer> hashtable = new Hashtable<>();
hashtable.put(null, 1); // NullPointerException

Для многопоточности лучше использовать ConcurrentHashMap.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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