Отбор значения через filter в Java
Метод filter принимает Predicate.
Если контейнер пуст, он так и остается пустым.
Если значение есть, но предикат вернул false,
результат снова пустой Optional, как будто
значения не было.
Отбор положительного числа:
import java.util.Optional;
Optional<Integer> raw = Optional.of(15);
Optional<Integer> positive = raw.filter(n -> n > 0);
System.out.println(positive.isPresent());
Optional<Integer> bad = Optional.of(-2);
System.out.println(bad.filter(n -> n > 0).isEmpty());
filter удобно ставить после map или
flatMap, когда нужно отсечь неподходящие
варианты без отдельного if.
Для строк "admin" и "no"
оставьте значение только при длине больше
3. Если значение не подходит,
выведите "short".