Stream的创建以及使用
一、描述
JKD1.8新增的接口,可以实现对数组、集合等类似于spark算子的所有操作。
二、创建Stream对象
// 1.通过数组创建
String[] arr = {"a", "b", "c", "d", "e"};
Stream<String> streamArr = Stream.of(arr);
// 2.通过集合创建
Collection<String> collection = Arrays.asList("a", "b", "c", "d", "e");
Stream<String> streamCollection = collection.stream();
// 3.通过Stream.generate()
Stream<Integer> generate = Stream.generate(() -> 1);
// 4.通过Stream.iterate()
Stream<Integer> integerStream = Stream.iterate(1, x -> x + 1);
最常用的是前两种。
三、并行流的使用
Stream接口的并行流的使用:
/**
* parallel()方法是Stream接口的并行流
*/
Optional<Integer> max = Stream.iterate(1, x -> x + 1).limit(200).peek(x -> {
System.out.println(Thread.currentThread().getName());
}).parallel().max(Integer::compareTo);
System.out.println(max);