Кто может объяснить принцип сравнения, когда есть разные варианты сравниваемых строк, которые могут отличаться как буквами, так и длиной?
Ответ
Строки в 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
Комментариев нет:
Отправить комментарий