Транзитивно ли неравенство в Java?
-
27-10-2019 - |
Вопрос
Если у меня есть 3 объекта a , b и c , и я хочу проверить, что ни один из них не равен друг другу, Мне нужно проверить:
родовое словоСогласно документации Java, для правильно реализованного метода equals:
<цитата>Это транзитивно: для любых ненулевых ссылочных значений x, y и z, если x.equals (y) возвращает true, а y.equals (z) возвращает true, то x.equals (z)должен вернуть истину.
Здесь говорится, что равенство транзитивно, а как насчет неравенства ?
Решение
задан общий кодовый код:
a!= b -> верно
b!= c -> верно
a!= c -> ложь
Итак, неравенство не является транзитивным.
Другие советы
Это не транзитивно.Рассмотрите вариант сгенерированного кодового кода, сгенерированный кодовый код и кодовый кодовый код.
Неравенство никогда не бывает транзитивным (если у вас есть 2 не равных элемента, a и b).Потому что тогда у вас есть! A.equals (b) и из-за симметрии! B.equals (a), но из-за идентичности у вас есть a.equals (a).Итак, неравенство не может быть переходным.
Нет, конечно, нет.
родовое словоно
родовое словоНу нет.Для транзитивности необходимо условие, истинное для любых x, y, z;но если я выберу z== x, я очень надеюсь, что
родовое словои у!= г
НЕ подразумевает
родовое словопоскольку z равно x!