РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
557 of 1163 menu

Метод filter

Метод filter класса Optional принимает предикат - функцию, которая возвращает boolean. Если значение внутри Optional присутствует и удовлетворяет условию предиката, метод возвращает тот же Optional с этим значением. Если значение не проходит проверку или Optional пуст, возвращается пустой Optional.

Синтаксис

optional.filter(predicate)

Пример

Давайте создадим Optional со значением 5 и проверим, больше ли оно 0:

import java.util.Optional; public class Main { public static void main(String[] args) { Optional<Integer> opt = Optional.of(5); Optional<Integer> res = opt.filter(x -> x > 0); System.out.println(res); } }

Результат выполнения кода:

Optional[5]

Пример

Теперь проверим значение 5 на условие x > 10. Так как условие не выполняется, метод вернёт пустой Optional:

import java.util.Optional; public class Main { public static void main(String[] args) { Optional<Integer> opt = Optional.of(5); Optional<Integer> res = opt.filter(x -> x > 10); System.out.println(res); } }

Результат выполнения кода:

Optional.empty

Пример

Если Optional пуст, метод filter вернёт пустой Optional, не вызывая предикат:

import java.util.Optional; public class Main { public static void main(String[] args) { Optional<String> opt = Optional.empty(); Optional<String> res = opt.filter(s -> s.length() > 0); System.out.println(res); } }

Результат выполнения кода:

Optional.empty

Пример

Давайте проверим строку "abcde" на то, что она начинается с символа "a":

import java.util.Optional; public class Main { public static void main(String[] args) { Optional<String> opt = Optional.of("abcde"); Optional<String> res = opt.filter(s -> s.startsWith("a")); System.out.println(res); } }

Результат выполнения кода:

Optional[abcde]

Смотрите также

  • метод map,
    который преобразует значение внутри Optional
  • метод flatMap,
    который преобразует значение с возвратом Optional
  • метод isPresent,
    который проверяет наличие значения
  • метод stream,
    который превращает Optional в поток
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить