Вы можете использовать преимущество плоского отображения с Optional::stream
, доступным с java -9 :
return entries.stream() // Stream<Entry>
.map(e -> e.getFragmentTime(fragment)) // Stream<Optional<Double>>
.flatMap(Optional::stream) // Stream<Double>
.min(Double::compare); // Optional<Double>
Обратите внимание, что .min(Double.compare);
не является правильным использованием, Параметр фактически является лямбда-выражением ((d1, d2) -> Double.compare(d1, d2)
, которое должно быть сокращено до ссылки на метод Double::compare
. Также возможно использование Comparator.comparingDouble(d -> d)
.
В случае java -8 вы должны придерживаться .filter(Optional::isPresent).map(Optional::get)
.