Ответ
Да, вернёт true. Контракт метода Map.equals() требует сравнения наборов записей (key-value pairs). Запись с null-значением считается валидной и участвует в сравнении.
Пример:
Map<String, String> map1 = new HashMap<>();
map1.put("keyA", null);
Map<String, String> map2 = new HashMap<>();
map2.put("keyA", null);
System.out.println(map1.equals(map2)); // Вывод: true
Как работает сравнение:
- Сравниваются наборы ключей (
keySet). Если они не равны, метод возвращаетfalse. - Для каждого ключа из первого набора проверяется равенство значений с помощью
Objects.equals(value1, value2). Этот метод корректно обрабатываетnull(возвращаетtrue, если оба аргументаnull).
Таким образом, null-значения корректно сравниваются между собой.