# Streams Erleichtert das Verarbeiten von Sammlungen aus den Collection Framework. --- # Grundlagen Die [Stream-API](https://docs.oracle.com/javase/8/docs/api/java/util/stream/package-summary.html) bietet Higher Order Functions (HOF) die auf Collections arbeiten. Dazu zählen: * filter * map * fold Die Verarbeitung erfolgt in drei Schritten: Erzeugung des Streams, Verarbeitung des Streams und zum Schluss Terminieren des Streams. --- # Beispiel ```java List liste = new ArrayList(); liste.addAll("was", "geht", "ab", "?"); int laenge = liste.stream().map(text -> text.length()).reduce(0, Integer::sum); List nurWoerter = liste.stream() .filter(s -> s.matches("[a-zA-Z]")) .collect(Collectors.toList()); int nurLangeWoerterLaenge = liste.stream() .filter(s -> s.matches("[a-zA-Z]")) .filter(s -> s.length() >= 3) .map(s -> s.length()) .reduce(0, Integer::sum) ``` [`Stream:reduce(Binary)`](https://docs.oracle.com/javase/8/docs/api/java/util/stream/Stream.html#reduce-T-java.util.function.BinaryOperator-) --- # Aufgabe 1) Berechne in `SummiererWerkzeug.setzeSumme()` die Summe der einzelnen Zähler mithilfe von Streams.