вторник, 19 мая 2009 г.

Мнемоническое правило для запоминания, что нужно вернуть в compare методе

Наверное, каждый программист знает про метод compare, который есть в том или ином виде во многих языках программирования. В Java этот метод определяется в интерфейсе Comparator:
int compare(T o1, T o2);

Но зачастую забывается, что же там надо вернуть - минус или плюс один. Я придумал мнемоническое правило, по которому легко запомнить, какое значение вам необходимо возвращать. Итак:
Если o1 меньше o2, то возвращаете минус один(-1). Обратите внимание на букву "м" в слове "меньше" и ту же букву в слове "минус". По этой самой букве "м" легко запомнить, что нужно возвращать. меньше => минус

Остальное же легко:
-если o1 равно o2, возвращается 0(это помнят все).
-остался один случай, когда o1 больше o2. Тут уже вспоминаете методом исключения, что надо вернуть "1".

Возможно, это было уже кому-то известно, однако, я такого нигде не читал.

p.s.: вообще необязательно возвращать +1 или -1. Просто должно быть отрицательное и положительное число. Часто делают +1 или -1, если не нужно знать насколько одно "больше" или "меньше" другого (в кавычках, потому что понятие больше или меньше условно). Но можно возвращать насколько одно "больше" или "меньше" другого. Например, пять больше трех на два. Эта информация может пригодиться в работе некоторых алгоритмов.

Комментариев нет:

Отправить комментарий