java8 StreamAPI(一) 基本概念以及创建方式

一、作用

Stream是一组用来处理数组、集合的API

二、Stream的特性

1:不是数据结构,没有内部存储
2:不支持索引访问
3:延迟计算
4:支持并行
5:很容易生成数组或集合(List,Set)
6:支持过滤,查找,转换,汇总,聚合等操作

三、Stream运行机制

1: Stream分为 源source,中间操作,终止操作

2:流的源可以是一个数组、一个集合、一个生成器方法,一个I/O通道等等。

3:一个流可以有零个和或者多个中间操作,每一个中间操作都会返回一个新的流,供下一个操作使用。一个流只会有一个终止操作

4:Stream只有遇到终止操作,它的源才开始执行遍历操作

四、Stream源source的创建

4-1 通过数组创建 Stream.of(arr)

  	/**
     * 数组创建of
     */
    static  void gen1(){
        String[] arr={"a","b","c","d"};
        Stream<String> stream = Stream.of(arr);
    }

4-2 通过集合创建 list.stream()

	 /**
     * 集合创建list.stream()
     */
    static  void gen2(){
        String[] arr={"a","b","c","d"};
        List<String> list = Arrays.asList(arr);
        Stream<String> stream = list.stream();
    }

4-3 generate创建 Stream.generate(() -> 1)

    /**
     * generate创建  无限制的流
     */
    static  void gen3(){
        Stream<Integer> stream = Stream.generate(() -> 1);
    }

4-4 iterate创建 Stream.iterate(1, x -> x + 1)

    /**
     * iterate  创建  无限制的流
     */
    static  void gen4(){
        Stream<Integer> stream = Stream.iterate(1, x -> x + 1);
        stream.limit(10).forEach(System.out::println);
    }

4-5 其他方式创建

    /**
     * 通过其他方式创建
     */
    static  void gen5(){
        String str="1234645";
        IntStream stream = str.chars();
        stream.forEach(System.out::println);
    }

猜你喜欢

转载自blog.csdn.net/qq_41446768/article/details/87912040