Junior — Middle
Ismételten alkalmazható a terminál módszer egyetlen áramra a Java Stream API-ban?
sobes.tech MI
Válasz az MI-től
Nem, a Java Stream API-ban a terminális módszer csak egyszer alkalmazható egy áramlásra. A terminális módszer hívása után az áramlás zártnak számít, és ugyanazon áramlás újrahasználata IllegalStateException-t eredményez.
Ha több műveletet kell végrehajtani, akkor az eredeti gyűjteményből vagy adatforrásból új áramlást kell létrehozni.
Példa:
List<String> list = Arrays.asList("a", "b", "c");
Stream<String> stream = list.stream();
long count = stream.count(); // terminális módszer
// stream.forEach(System.out::println); // IllegalStateException-t okoz
// Helyes:
list.stream().forEach(System.out::println);