Метод max
Метод max возвращает максимальный элемент
потока в виде объекта Optional. В единственный
параметр мы передаем компаратор Comparator,
который задает правило сравнения элементов.
Если поток пуст, возвращается пустой Optional.
Синтаксис
stream.max(comparator)
Пример
Давайте найдем максимальное число в потоке
из 1, 2, 3, 4, 5:
import java.util.List;
import java.util.Optional;
public class Main
{
public static void main(String[] args)
{
List<Integer> list = List.of(1, 2, 3, 4, 5);
Optional<Integer> res = list.stream()
.max(Integer::compareTo);
System.out.println(res.get());
}
}
Результат выполнения кода:
5
Пример
Давайте найдем максимальную строку в потоке
из "abcde", "ab", "abc":
import java.util.List;
import java.util.Optional;
public class Main
{
public static void main(String[] args)
{
List<String> list = List.of("abcde", "ab", "abc");
Optional<String> res = list.stream()
.max(String::compareTo);
System.out.println(res.get());
}
}
Результат выполнения кода:
"abcde"
Пример
Давайте проверим поведение метода на пустом потоке:
import java.util.List;
import java.util.Optional;
public class Main
{
public static void main(String[] args)
{
List<Integer> list = List.of();
Optional<Integer> res = list.stream()
.max(Integer::compareTo);
System.out.println(res.isEmpty());
}
}
Результат выполнения кода:
true