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