Junior — Middle
123
La méthode equals renverra-t-elle true si l'on compare une paire clé-valeur dont la valeur est null?
Entreprises à qui on a demandé
Ifellow
Réponse de l'IA
sobes.tech IA
Метод equals в Java может вернуть true при сравнении пары ключ-значение, где значение равно null, но это зависит от реализации класса, который вы сравниваете.
Если речь идёт, например, о Map.Entry, то метод equals сравнивает ключи и значения, учитывая, что значение может быть null. В стандартной реализации AbstractMap.SimpleEntry сравнение выглядит так:
@Override
public boolean equals(Object o) {
if (!(o instanceof Map.Entry))
return false;
Map.Entry<?,?> e = (Map.Entry<?,?>)o;
return Objects.equals(key, e.getKey()) && Objects.equals(value, e.getValue());
}
Здесь Objects.equals корректно обрабатывает null значения, возвращая true, если оба значения равны null.
Пример:
Map.Entry<String, String> entry1 = new AbstractMap.SimpleEntry<>("key", null);
Map.Entry<String, String> entry2 = new AbstractMap.SimpleEntry<>("key", null);
System.out.println(entry1.equals(entry2)); // Выведет true
Таким образом, если ключи равны и оба значения null, equals вернёт true.