Swe*_*per 49
要理解为什么这两种方法都存在,你需要先了解什么是Iterator和Iterable.
一个Iterator基本的东西,有一个"未来元素",通常,一个结束.
An Iterable是包含有限或无限序列中的元素的东西,因此可以通过继续获取下一个元素来迭代.换句话说,Iterables可以被s迭代Iterator.
既然你理解了这一点,我就可以谈谈这两种方法之间的区别.
我们以数组列表为例.这是数组列表中的内容:
[1, 3, 6, 8, 0]
Run Code Online (Sandbox Code Playgroud)
现在,如果我打电话Iterable.forEach()并传入System.out::print(),13680将被打印.这是因为Iterable.forEach遍历整个元素序列.
另一方面,如果我获得了Iterator数组列表并且next在调用之前调用forEachRemaining了两次System.out::print(),680则会打印出来.在Iterator已经通过前两个元素迭代,因此,"剩余"的有6,8和0.
| 归档时间: |
|
| 查看次数: |
8999 次 |
| 最近记录: |