Назад к вопросам
Газпромбанк
Junior — Middle
52
Что произойдет, если в HashMap вставить запись с ключем равным null?
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
Что хотят услышать интервьюеры:
HashMap в Java допускает один ключ null. При вставке записи с null-ключом она будет храниться в специальной корзине, а повторная вставка с тем же ключом просто перезапишет значение. При чтении по null вернётся соответствующее значение.
Определение:
HashMap может содержать ровно одну запись с ключом null. Это отличается от многих других коллекций и от Hashtable, где null-ключи запрещены. Для null-ключа HashMap не вычисляет hashCode() у ключа, а обрабатывает его отдельно.
Пример использования:
import java.util.HashMap;
import java.util.Map;
public class Main {
public static void main(String[] args) {
Map<String, String> map = new HashMap<>();
map.put(null, "default-value");
map.put("name", "Alex");
map.put(null, "updated-value"); // перезапишет значение для null-ключа
System.out.println(map.get(null)); // updated-value
System.out.println(map.size()); // 2
}
}
Пояснение кода:
- Создаётся
HashMap<String, String>. - В неё добавляется запись с ключом
null. - Затем добавляется обычная запись с ключом
"name". - Повторный
put(null, "updated-value")не создаёт новую запись, а заменяет значение у существующегоnull-ключа. get(null)возвращает значение, связанное сnull.size()показывает2, потому что в map только две уникальные записи по ключам.
Ключевые моменты:
HashMapразрешает одинnull-ключ.- Повторный
put(null, value)перезаписывает значение, а не добавляет новую запись. HashMapтакже допускает несколькоnull-значений.- В
Hashtablenull-ключи иnull-значения запрещены. - Для
null-ключа используется отдельная внутренняя обработка, без вызоваhashCode(). - При выборе между
Map-реализациями важно помнить, что поведение сnullможет отличаться.