1. 什么是流?
随着时间产生的数据序列
特点:
- 支持函数式编程
- 提供管道运算能力
- 提供并发并行(parallel)计算能力
-
2. ::运算符的作用?
3. Java8的Stream价值是什么?
4. 创建Stream有几种方法?
Collection类的stream()方法
- 数组的Array.stream()方法
- Stream.of()方法
-
5. 利用parallel并发执行任务
parallelStream默认启动(CPU核心数-1)个线程
示例中并行流计算速度较慢,是因为任务拆分合并的速度较慢。public static void main(String[] args) {List<Integer> list = IntStream.range(0, 1_000_000).boxed().map(x -> (int) (Math.random() * 10_000_000)).collect(Collectors.toList());long t1 = System.currentTimeMillis();Optional<Integer> max1 = list.stream().max(Integer::compareTo);System.out.println("stream:" + max1);System.out.println("stream:" + (System.currentTimeMillis() - t1));long t2 = System.currentTimeMillis();Optional<Integer> max2 = list.parallelStream().max(Integer::compareTo);System.out.println("parallel stream:" + max2);System.out.println("parallel stream:" + (System.currentTimeMillis() - t2));}
6. 函数式编程性质
immutable/pure
- lazy
- safty——monad架构
