Sobes.tech
Senior

Какви са междинните и крайните методи в стриймовете?

sobes.tech AI

Отговор от AI

В Java Stream API методите се делят на междинни (intermediate) и терминални (terminal).

  • Междинните методи връщат нов поток и позволяват изграждането на верига от операции. Те са лениви, тоест не се изпълняват веднага, а само при извикване на терминален метод. Примери: filter(), map(), sorted(), distinct().

  • Терминалните методи стартират обработката на потока и връщат резултат (не поток). След извикването им, веригата приключва. Примери: collect(), forEach(), reduce(), count().

Пример:

List<String> names = List.of("Anna", "Bob", "Charlie", "David");

long count = names.stream()  // междинен метод stream()
    .filter(name -> name.length() > 3)  // междинен метод filter()
    .count();  // терминален метод count()

System.out.println(count);  // Извежда броя на имената с повече от 3 символа