Sobes.tech
Junior — Middle

Можеш ли да дадеш примери за терминални методи в API Stream в Java?

sobes.tech AI

Отговор от AI

Терминалните методи в API-то на Java Stream са операции, които завършват обработката на потока и връщат резултат или страничен ефект. Те не връщат нов поток, а например изчисляват стойност или събират елементи.

Примери за терминални методи:

  • forEach(Consumer<? super T> action) — изпълнява действие за всеки елемент.
  • collect(Collector<? super T,A,R> collector) — събира елементите в колекция или друг контейнер.
  • reduce(BinaryOperator<T> accumulator) — редуцира елементите до една стойност.
  • count() — връща броя на елементите.
  • anyMatch(Predicate<? super T> predicate) — проверява дали поне един елемент отговаря на условието.
  • allMatch(Predicate<? super T> predicate) — проверява дали всички елементи отговарят на условието.
  • findFirst() — връща първия елемент в потока (ако има такъв).

Пример:

List<String> list = Arrays.asList("a", "bb", "ccc");
long count = list.stream()
                 .filter(s -> s.length() > 1)
                 .count();  // терминална метода
System.out.println(count);  // 2