编程语言
首页 > 编程语言> > java-Iterable接口中的forEach和spliterator是什么,以及如何使用链表实现

java-Iterable接口中的forEach和spliterator是什么,以及如何使用链表实现

作者:互联网

我有一个实质上是链表的数据结构,这意味着它的节点包含指向下一个节点的数据.

我研究了在此类上使用for循环促进迭代的过程,发现必须实现Iterable接口.但是,我对如何实现forEach()和spliterator()以及每种方法的功能感到困惑.

解决方法:

您不必实现spliterator()和forEach()方法.这些方法是Java 8中引入的,并且具有默认实现.

至于他们做什么:

spliterator()在此Iterable描述的元素上创建一个Spliterator.分隔符用于遍历和划分源元素(例如,可以是Collection)的元素.它在Java 8中用于创建对象的并行Streams,这将使您可以并行地对Iterable的项目执行操作.

forEach(Consumer action)对Iterable的所有元素执行一个动作(通过调用传递给它的Consumer的accept方法).

其默认实现的行为类似于:

 for (T t : this)
     action.accept(t);

您只需要实现iterator()方法即可,该方法返回一个Iterator.

当然,您可以在JavaDoc of Iterable中阅读所有内容.

标签:list,for-loop,iterator,linked-list,java
来源: https://codeday.me/bug/20191029/1958817.html