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);

 

 

posted @ 2018-08-17 13:31  小情绪Ango  阅读(167)  评论(0编辑  收藏  举报