Метод comparing
Метод comparing класса Comparator создает компаратор,
который сравнивает объекты по ключу, извлекаемому с помощью
переданной функции. В первый параметр мы передаем функцию-экстрактор
keyExtractor, которая преобразует объект в ключ сортировки.
Ключ должен реализовывать интерфейс Comparable.
Метод возвращает новый компаратор Comparator.
Синтаксис
Comparator.comparing(keyExtractor)
Пример
Давайте отсортируем список строк по их длине:
import java.util.Comparator;
import java.util.List;
public class Main
{
public static void main(String[] args)
{
List<String> list = List.of("abcde", "a", "abc", "ab", "abcd");
List<String> res = list.stream()
.sorted(Comparator.comparing(String::length))
.toList();
System.out.println(res);
}
}
Результат выполнения кода:
[a, ab, abc, abcd, abcde]
Пример
Давайте отсортируем список чисел по их строковому представлению:
import java.util.Comparator;
import java.util.List;
public class Main
{
public static void main(String[] args)
{
List<Integer> list = List.of(10, 2, 30, 4, 5);
List<Integer> res = list.stream()
.sorted(Comparator.comparing(String::valueOf))
.toList();
System.out.println(res);
}
}
Результат выполнения кода:
[10, 2, 30, 4, 5]
Пример
Давайте отсортируем список строк в обратном порядке,
используя метод reversed:
import java.util.Comparator;
import java.util.List;
public class Main
{
public static void main(String[] args)
{
List<String> list = List.of("abcde", "a", "abc", "ab", "abcd");
List<String> res = list.stream()
.sorted(Comparator.comparing(String::length).reversed())
.toList();
System.out.println(res);
}
}
Результат выполнения кода:
[abcde, abcd, abc, ab, a]
Смотрите также
-
класс
Comparator,
который используется для сравнения объектов -
метод
compare,
который сравнивает два объекта -
метод
thenComparing,
который добавляет второе условие сравнения -
метод
reversed,
который меняет порядок сортировки на обратный