stream流_Java8新特性之Stream流,流与迭代器

7a06699a7c4d1d96e2f8d7a4161806be.png

恭喜你们,马上就要学完Java8 Stream流的一整系列了,其实我相信Stream流对很多使用Java的同学来说,都是一个知识盲点,因为这个原因,我才这么细致地讲解Stream流的各个知识点,通过这一整个系列,我相信只要认真看了的同学,都已掌握的差不多了,就差实战了。其实我在工作过程中,Stream流对我的帮助真的挺大的,所以,我想和大家分享一下,于是这系列的文章就出来了。在本系列文章发布的时候,有很多同学反映,Stream流的调试和forEach()的调试都不是特别友好,那本篇给出一个折中的调试方法,虽然不能完美解决调试的问题,但是基本上已经能解决绝大部分的调试问题了,没错,就是迭代器了,当然迭代器除了能辅助调试以外,他最重要的还是遍历功能。这篇文章除了介绍传统的迭代器外,还会介绍Java8中新增的Spliterator,因为在并行流的场合,Spliterator相当的好用。

我们先简单介绍一下传统的迭代器

迭代器是实现了Iterator接口的对象,并且Iterator接口允许遍历,获取或者移除元素。

public interface Iterator {

Iterator iterator();

E next();

default void remove() {

throw new UnsupportedOperationException("remove");

}

default void forEachRemaining(Consumer super E> action) {

Objects.requireNonNull(action);

while (hasNext())

action.accept(next());

}

}

使用Iterator的一般步骤:

  • (1)通过iterator()方法,获取指向集合或流开头的迭代器。
  • (2)建立一个hasNext()方法调用循环,只要hasNext()返回true,就继续迭代。
  • (3)在循环中,通过调用next()方法获取每个元素。

private static void learnIterator() {

List lists = Arrays.asList("A

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值