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