Ответ
В Java возврат значения -1 из методов compare(T o1, T o2) (Comparator) или compareTo(T other) (Comparable) означает, что первый объект (o1 или this) должен быть расположен перед вторым объектом в отсортированном порядке (по возрастанию).
Контракт метода сравнения:
-1→ первый объект «меньше» (идёт раньше).0→ объекты равны с точки зрения порядка.+1→ первый объект «больше» (идёт позже).
Пример реализации Comparable:
class Product implements Comparable<Product> {
private String name;
private double price;
@Override
public int compareTo(Product other) {
// Сортировка по возрастанию цены
return Double.compare(this.price, other.price);
// Метод Double.compare() сам вернёт -1, 0 или 1
}
}
Практическое применение: Это соглашение используется всеми стандартными алгоритмами сортировки (Collections.sort(), Arrays.sort()) и коллекциями, основанными на порядке (TreeSet, TreeMap, PriorityQueue).
Важно: Для сравнения примитивных числовых типов всегда используйте статические методы-компараторы (Integer.compare(), Double.compare()), чтобы избежать ошибок с переполнением.