Sobes.tech
Junior — Middle

Je možné opakovane použiť terminálnu metódu na jeden tok v Stream API pre Java?

sobes.tech AI

Odpoveď od AI

Nie, terminálna metóda v API Stream Java môže byť použitá iba raz na jeden tok. Po volaní terminálnej metódy je tok považovaný za zatvorený a opakované použitie toho istého toku povedie k IllegalStateException.

Ak je potrebné vykonať viacero operácií, je potrebné vytvoriť nový tok z pôvodnej kolekcie alebo zdroja dát.

Príklad:

List<String> list = Arrays.asList("a", "b", "c");
Stream<String> stream = list.stream();
long count = stream.count(); // terminálna metóda
// stream.forEach(System.out::println); // spôsobí IllegalStateException

// Správne:
list.stream().forEach(System.out::println);