Programmieren_2/streams.md

1.5 KiB

Streams

Erleichtert das Verarbeiten von Sammlungen aus den Collection Framework.


Grundlagen

Die Stream-API 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

List<String> liste = new ArrayList<String>();
liste.addAll("was", "geht", "ab", "?");

int laenge = liste.stream().map(text -> text.length()).reduce(0, Integer::sum);

List<String> 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)


Aufgabe

  1. Berechne in SummiererWerkzeug.setzeSumme() die Summe der einzelnen Zähler mithilfe von Streams.