Страницы

Поиск по вопросам

четверг, 8 ноября 2018 г.

Каков принцип работы метода compareTo()?

Кто может объяснить принцип сравнения, когда есть разные варианты сравниваемых строк, которые могут отличаться как буквами, так и длиной?


Ответ

Строки в Java(и вообще много где) сравниваются с помощью Лексикографического порядка. О том, что это такое можно почитать так же тут. Общий смысл, по алфавиту.
Если говорить именно про класс String, то он реализует интерфейс Comparable в документации подробно описано, что должен возвращать метод compareTo(). Если вкратце, то он определяет порядок элементов.
o1.compateTo(o2)
> 0 - если o1 должен идти после o2 (в случаем с числами o1>o2, со строками, по алфавиту o2 идёт раньше o1)
=0 - если o1 и o2 равнозначны (не обязательно равны! НО, если o1.equals(o2) == true, то желательно, чтобы o1.compareTo(o2) == 0, иначе теряется консистентность)
<0 - если o1 должен идти перед o2 (в случаем с числами o1

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

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