Metoda allMatch typu terminal– zwraca flagę informującą czy wszystkie elementy spełniają warunek. Gdy natrafi na element który tego warunku nie spełnia, metoda już nie sprawdza dalej.
Collectors typ terminal – umożliwia grupowanie elementów strumienia po wartości wybranego atrybutu. W przykładzie poniżej metoda grupuje pracowników po dywizji/departamencie, w którym są zatrudnieni.
Map<String, List<Employee>> employeesGroupedByDivision = employees.stream().collect(Collectors.groupingBy(employee -> employee.getDivision())); employeesGroupedByDivision.forEach((division, workers) -> System.out.println (String.format("Division: %s %s", division, workers)));
Reduce() typu terminal – redukuje strumień do wartości nie będącej strumieniem. Operacje redukcji łączą wszystkie elementy strumienia w jeden wynikowy element, czyli zwracają „odpowiedź” ze strumienia danych. Przykładowymi operacjami są np. findFirst(), min(), max()– wszystkie zwracają jako wynik Optional<T>. Typ Optional jest lepszym sposobem wskazania że zwrócona wartość jest pusta np. gdy dany strumień był pusty.