Метод compareTo
Метод compareTo является единственным абстрактным методом интерфейса Comparable. Он используется для определения естественного порядка сортировки объектов. В качестве параметра метод принимает один объект того же типа, с которым нужно сравнить текущий объект. Возвращаемое значение имеет тип int и может быть следующим:
- отрицательное число - текущий объект меньше переданного;
- ноль - объекты равны;
- положительное число - текущий объект больше переданного.
Синтаксис
public int compareTo(T o)
Пример
Давайте создадим класс Person, реализующий интерфейс Comparable, и сравним двух людей по возрасту:
class Person implements Comparable<Person>
{
String name;
int age;
Person(String name, int age)
{
this.name = name;
this.age = age;
}
@Override
public int compareTo(Person other)
{
return this.age - other.age;
}
}
public class Main
{
public static void main(String[] args)
{
Person p1 = new Person("Alice", 30);
Person p2 = new Person("Bob", 25);
System.out.println(p1.compareTo(p2));
System.out.println(p2.compareTo(p1));
System.out.println(p1.compareTo(p1));
}
}
Результат выполнения кода:
5
-5
0
Пример
Теперь сравним строки, используя встроенную реализацию метода compareTo в классе String:
public class Main
{
public static void main(String[] args)
{
String str1 = "abcde";
String str2 = "abcdf";
System.out.println(str1.compareTo(str2));
System.out.println(str2.compareTo(str1));
System.out.println(str1.compareTo(str1));
}
}
Результат выполнения кода:
-1
1
0
Смотрите также
-
интерфейс
Comparable,
который определяет естественный порядок объектов -
интерфейс
Comparator,
который позволяет задавать внешний порядок сортировки -
метод
compare,
который сравнивает два объекта в Comparator -
интерфейс
Iterable,
который позволяет перебирать элементы коллекции