Junior — Middle
Wann erfolgt die Initialisierung von Stream bei Verwendung der Stream-API?
sobes.tech KI
Antwort von AI
Die Initialisierung eines Streams in Java erfolgt beim Aufruf einer Terminal-Operation. Bis zu diesem Zeitpunkt sind Operationen am Stream faul (lazy) und werden nicht ausgeführt.
Das heißt, wenn Sie einen Stream erstellen und Zwischenoperationen (z.B. filter(), map()) anwenden, bilden diese nur eine Verarbeitungskette, starten aber keine Berechnungen.
Beispiel:
List<String> list = Arrays.asList("a", "b", "c");
Stream<String> stream = list.stream()
.filter(s -> s.startsWith("a"))
.map(String::toUpperCase);
// Hier passiert nichts
List<String> result = stream.collect(Collectors.toList()); // Terminal-Operation
// Hier erfolgt die Verarbeitung der Elemente
Daher wird der Stream erst initialisiert und beginnt mit der Datenverarbeitung, wenn eine Terminal-Operation wie collect(), forEach(), reduce() usw. aufgerufen wird.