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

Метод findAny

Метод findAny класса Stream возвращает значение типа Optional, содержащее любой элемент потока. Если поток пуст, возвращается пустой Optional. Метод не принимает параметров. В отличие от findFirst, метод findAny не гарантирует, что будет возвращён именно первый элемент - в параллельных потоках это позволяет добиться максимальной производительности.

Синтаксис

Optional<T> findAny()

Пример

Давайте найдём любой элемент потока из чисел 1, 2, 3, 4, 5:

import java.util.List; import java.util.Optional; import java.util.stream.Stream; public class Main { public static void main(String[] args) { Stream<Integer> stream = List.of(1, 2, 3, 4, 5).stream(); Optional<Integer> res = stream.findAny(); System.out.println(res.get()); } }

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

1

Пример

Давайте найдём любой элемент потока строк "a", "b", "c", "d", "e" и выведем его через orElse:

import java.util.List; import java.util.stream.Stream; public class Main { public static void main(String[] args) { Stream<String> stream = List.of("a", "b", "c", "d", "e").stream(); String res = stream.findAny().orElse("empty"); System.out.println(res); } }

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

"a"

Пример

Если поток пуст, метод findAny вернёт пустой Optional. Давайте проверим это:

import java.util.stream.Stream; public class Main { public static void main(String[] args) { Stream<Integer> stream = Stream.empty(); String res = stream.findAny().isEmpty() ? "empty" : "not empty"; System.out.println(res); } }

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

"empty"

Пример

Давайте применим filter перед findAny, чтобы найти любой чётный элемент потока:

import java.util.List; import java.util.Optional; import java.util.stream.Stream; public class Main { public static void main(String[] args) { Stream<Integer> stream = List.of(1, 2, 3, 4, 5).stream(); Optional<Integer> res = stream.filter(n -> n % 2 == 0).findAny(); System.out.println(res.get()); } }

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

2

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

  • метод findFirst,
    который возвращает первый элемент потока
  • метод filter,
    который фильтрует элементы потока
  • метод anyMatch,
    который проверяет наличие элемента
  • метод collect,
    который собирает элементы потока
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить