Stream.max()
Находит наибольший элемент потока.
Доступно с: Java 8
Синтаксис
Optional<T> max(Comparator<? super T> comparator)Параметры
| Параметр | Тип | Описание |
|---|---|---|
| comparator | Comparator<? super T> | Правило сравнения. |
Возвращаемое значение
Optional<T>Наибольший элемент или пустой `Optional`.
Примеры
Самый старший пользователь:
record User(String name, int age) {}
void main() {
var users = List.of(new User("Anna", 31), new User("Oleg", 45), new User("Ivan", 19));
users.stream()
.max(Comparator.comparingInt(User::age))
.ifPresent(u -> IO.println(u.name()));
IO.println(Stream.of(4, 9, 2).max(Integer::compare).get());
}Результат:
Oleg
9Примечания
У Stream метод требует компаратор. У числовых потоков (IntStream) max() вызывается без аргументов и возвращает OptionalInt. Пустой поток даёт пустой Optional, а не исключение.
См. также
- Stream.min() — Находит наименьший элемент потока.
- Collections.max() — Находит наибольший элемент коллекции.
- Comparator.comparing() — Создаёт компаратор, который сравнивает объекты по одному полю.
Вопросы и ответы по теме
В учебнике
- Операции над потоками — Основные операции Stream API — filter, map, sorted, distinct, limit, skip, count, reduce, anyMatch, findFirst и числовые потоки.