Sobes.tech
Junior — Middle

Können Sie erklären, was der Begriff 'nicht-terminale Operation' bei der Arbeit mit Datenströmen in der Stream-API bedeutet?

sobes.tech KI

Antwort von AI

In der Java Stream API werden Operationen in terminale und nicht-terminale (intermediäre) Operationen unterteilt.

Eine nicht-terminale Operation ist eine Operation, die einen neuen Stream zurückgibt und die Datenverarbeitung nicht sofort startet. Sie dient zum Aufbau einer Kette von Transformationen, z.B. Filtern, Mapping, Sortieren.

Beispiele für nicht-terminale Operationen:

  • filter()
  • map()
  • sorted()
  • distinct()

Diese Operationen sind faul: Sie werden erst ausgeführt, wenn eine terminale Operation aufgerufen wird, z.B. forEach(), collect(), count().

Beispiel:

List<String> list = Arrays.asList("a", "bb", "ccc");

list.stream()
    .filter(s -> s.length() > 1) // nicht-terminal
    .map(String::toUpperCase)    // nicht-terminal
    .forEach(System.out::println); // terminal

Auf diese Weise ermöglichen nicht-terminale Operationen den Aufbau einer Transformationskette, während die terminale Operation die Ausführung startet.