Java8 StreamAPI的使用

什么是Stream

1.Stream关注的是对数据的运算,与CPU打交道。集合关注的是数据的存储,与内存打交道。

2. Stream自己不会存储元素,不会改变元素。相反,他们会返回一个持有结果的新Stream。

Stream的操作是延迟执行的,这意味着他们会等到需要结果的时候才能执行。

3.Stream执行流程

  • Stream的实例化
  • 一系列的中间操作(过滤,映射....)
  • 终止操作

4.说明:

  • 一个中间操作链,对数据源的数据进行处理
  • 一旦执行终止操作,就执行中间操作链,并产生结果,之后就不会再被使用

如何创建Stream

    //创建Stream方法一:通过集合
    @Test
    public void test1() {
        ArrayList<Integer> integers = new ArrayList<>();
        //default Stream<E> stream() 返回一个顺序流
        Stream<Integer> stream = integers.stream();
        //default Stream<E> parallelStream() 返回一个并行流
        Stream<Integer> integerStream = integers.parallelStream();
    }

    //创建Stream方法二:通过数组
    @Test
    public void test2() {
        int[] nums = new int[]{1, 2, 3, 4, 5, 6};
        //调用Arrays类的 public static IntStream stream(int[] array) 返回一个流
        IntStream stream = Arrays.stream(nums);
    }

    //创建Stream方法三:通过Stream的of(),通过显式的值创建一个流,他可以接受任意的参数
    @Test
    public void test3() {
        Stream<Integer> integerStream = Stream.of(1, 2, 3, 4, 5);
    }

    //创建Stream方法四:创建无限流,如果没有limit将会无限生成流
    @Test
    public void test4() {
        //遍历前十个数 public static<T> Stream<T> iterate(final T seed, final UnaryOperator<T> f)
        Stream.iterate(0, t -> t + 2).limit(10).forEach(System.out::println);

        //生成 public static<T> Stream<T> generate(Supplier<T> s)
        Stream.generate(Math::random).limit(10).forEach(System.out::println);
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值