Junior — Middle
Πότε συμβαίνει η αρχικοποίηση του Stream κατά τη χρήση του API Stream;
sobes.tech AI
Απάντηση από AI
Η αρχικοποίηση ενός Stream στη Java συμβαίνει τη στιγμή που καλείται μια τελική λειτουργία. Μέχρι τότε, οι λειτουργίες πάνω στο Stream είναι τεμπέλικες (lazy) και δεν εκτελούνται.
Δηλαδή, όταν δημιουργείτε ένα Stream και εφαρμόζετε ενδιάμεσες λειτουργίες (π.χ., filter(), map()), αυτές απλώς σχηματίζουν μια αλυσίδα επεξεργασίας, αλλά δεν ξεκινούν τους υπολογισμούς.
Παράδειγμα:
List<String> list = Arrays.asList("a", "b", "c");
Stream<String> stream = list.stream()
.filter(s -> s.startsWith("a"))
.map(String::toUpperCase);
// Εδώ δεν συμβαίνει τίποτα
List<String> result = stream.collect(Collectors.toList()); // Τελευταία λειτουργία
// Εδώ γίνεται η επεξεργασία των στοιχείων
Έτσι, το Stream αρχικοποιείται και αρχίζει να επεξεργάζεται δεδομένα μόνο όταν καλείται μια τελική λειτουργία, όπως το collect(), forEach(), reduce(), κ.ά.