Sobes.tech
Back to questions
Junior — Middle
92

Объясните, что подразумевается под интерфейсом Comparator в языке Java.

Answer from AI

sobes.tech AI

Интерфейс Comparator в Java используется для определения порядка объектов, когда естественный порядок (через Comparable) не подходит или отсутствует. Он содержит метод compare(T o1, T o2), который сравнивает два объекта и возвращает:

  • отрицательное число, если o1 меньше o2
  • ноль, если они равны
  • положительное число, если o1 больше o2

Это позволяет сортировать коллекции по разным критериям без изменения самих классов объектов.

Пример использования:

List<String> names = Arrays.asList("Anna", "John", "Bob");

// Сортировка по длине строки
Collections.sort(names, new Comparator<String>() {
    @Override
    public int compare(String s1, String s2) {
        return Integer.compare(s1.length(), s2.length());
    }
});

// Или с лямбда-выражением
Collections.sort(names, (s1, s2) -> s1.length() - s2.length());