List<String> names = ... names.stream().map(String::toUpperCase).forEach(System.out::println);
Stream
java.util.stream.Stream
) je typ zavedený od Java 8
java.io.InputStream
/OutputStream
)
Bez splnění aspoň jedné následující charakteristiky nemají proudy zásadnější smysl:
Proudy nelze prakticky příliš využít bez současného zvládnutí funkcionálních prvků v Java 8:
Reálně bude ještě delší dobu trvat, než se začnou masověji objevovat v kódu:
Stream
List<String> names = …; names.stream()
nebo
String[] names = …; Stream.of(names)
names.parallelStream()
Stream
Dále lze proud použít pro řetězení operací nad jeho prvky:
List<String> names = ... names.stream().map(String::toUpperCase).forEach(System.out::println);
toUpperCase
(průběžná operace)
Zhruba odpovídá sekvenční iteraci:
List<String> names = ... for(String name: names) { System.out.println(name.toUpperCase()); }
Stream
s lambda výrazyList<Integer> integerList = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9); integerList.parallelStream().forEach(i -> System.out.print(i + " "));
nebo s více stupni řetězení
List<Integer> integerList = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9); integerList .parallelStream() .filter(i -> isOdd(i)) .forEach(i -> System.out.print(i + " "));