Метод reversed
Метод reversed класса Comparator возвращает
новый компаратор, который меняет порядок сортировки
исходного компаратора на противоположный. Метод не
принимает параметров и не изменяет исходный компаратор,
а создает и возвращает новый объект Comparator.
Это удобно, когда нужно отсортировать коллекцию
в обратном порядке, не создавая отдельный компаратор
с нуля.
Синтаксис
comparator.reversed()
Пример
Давайте отсортируем список чисел по возрастанию,
а затем применим метод reversed, чтобы
получить порядок по убыванию:
import java.util.Comparator;
import java.util.List;
public class Main
{
public static void main(String[] args)
{
List<Integer> list = new java.util.ArrayList<>(List.of(3, 1, 5, 2, 4));
Comparator<Integer> natural = Comparator.naturalOrder();
Comparator<Integer> reversed = natural.reversed();
list.sort(reversed);
System.out.println(list);
}
}
Результат выполнения кода:
[5, 4, 3, 2, 1]
Пример
Давайте отсортируем список строк по длине, а затем развернем порядок сортировки:
import java.util.Comparator;
import java.util.List;
public class Main
{
public static void main(String[] args)
{
List<String> list = new java.util.ArrayList<>(List.of("abcde", "a", "abc", "ab", "abcd"));
Comparator<String> byLength = Comparator.comparing(String::length);
Comparator<String> reversed = byLength.reversed();
list.sort(reversed);
System.out.println(list);
}
}
Результат выполнения кода:
[abcde, abcd, abc, ab, a]
Пример
Давайте применим метод reversed дважды
и убедимся, что порядок вернется к исходному:
import java.util.Comparator;
import java.util.List;
public class Main
{
public static void main(String[] args)
{
List<Integer> list = new java.util.ArrayList<>(List.of(3, 1, 5, 2, 4));
Comparator<Integer> natural = Comparator.naturalOrder();
Comparator<Integer> doubleReversed = natural.reversed().reversed();
list.sort(doubleReversed);
System.out.println(list);
}
}
Результат выполнения кода:
[1, 2, 3, 4, 5]
Смотрите также
-
класс
Comparator,
который задает порядок сортировки элементов -
метод
reverseOrder,
который возвращает компаратор обратного порядка -
метод
naturalOrder,
который возвращает компаратор естественного порядка -
метод
thenComparing,
который задает дополнительное условие сравнения