Junior — Middle
Μπορεί η τερματική μέθοδος να εφαρμόζεται επανειλημμένα σε ένα μόνο ρεύμα στην API Stream για Java;
sobes.tech AI
Απάντηση από AI
Όχι, η τερματική μέθοδος στην API Stream της Java μπορεί να εφαρμοστεί μόνο μία φορά σε ένα ρεύμα. Μετά την κλήση μιας τερματικής μεθόδου, το ρεύμα θεωρείται κλειστό και η επαναχρησιμοποίησή του θα οδηγήσει σε IllegalStateException.
Εάν χρειάζεται να εκτελέσετε πολλές λειτουργίες, πρέπει να δημιουργήσετε ένα νέο ρεύμα από τη συλλογή ή την αρχική πηγή δεδομένων.
Παράδειγμα:
List<String> list = Arrays.asList("a", "b", "c");
Stream<String> stream = list.stream();
long count = stream.count(); // τερματική μέθοδος
// stream.forEach(System.out::println); // θα προκαλέσει IllegalStateException
// Σωστό:
list.stream().forEach(System.out::println);