Всегда ли два объекта будут равны, если их метод compareTo () возвращает ноль?
Всегда ли два объекта будут равны, если их метод compareTo () возвращает ноль?

Видео: Всегда ли два объекта будут равны, если их метод compareTo () возвращает ноль?

Видео: Всегда ли два объекта будут равны, если их метод compareTo () возвращает ноль?
Видео: Comparable и Comparator в Java 2024, Май
Anonim

Это является рекомендовал сравнить с Только возвращается 0, если звонок на равно на те же объекты бы возвращение правда: сравнить с (e2) == 0 имеет то же самое логическое значение как e1. равно (e2) для любых e1 и e2 класса C. Обратите внимание, что null является не экземпляр какого-либо класса, и e.

Кроме того, может ли equals () вернуть false, даже если содержимое двух объектов одинаково?

4 ответа. В java метод public boolean равно ( Объект obj) наследуется от Объект . Однако реализация метода, как определено в Объект класс в том, что равно метод будет вернуться, если и только если в два объекта сравниваются тем же пример.

Следовательно, возникает вопрос, почему compareTo () должен быть согласован с методом equals () в Java? Это так, потому что интерфейс карты определен в терминах равно операция, но карта выполняет все ключевые сравнения, используя свои сравнить с (или сравнить) метод , поэтому два ключа считаются равный этим метод являются, с точки зрения отсортированной карты, равный.

Имея это в виду, в чем разница между методом == equals () и compareTo ()?

сравнить с : Лексикографическое сравнение двух строк. равно : Сравнивает эту строку с указанным объектом. сравнить с сравнивает две строки по их символам (с тем же индексом) и возвращает целое число (положительное или отрицательное) соответственно. равно () проверяет, являются ли два объекта одинаковыми или нет, и возвращает логическое значение.

Можем ли мы переопределить метод compareTo?

Переопределить метод compareTo Он должен возвращать отрицательное целое число (обычно -1), если текущий запускающий объект меньше переданного один , и положительное целое число (обычно +1), если больше, и 0, если равно. compareTo метод должен вызывать исключение, если переданный объект имеет несовместимый тип или значение null.

Рекомендуемые: