外部迭代:
for(:) {……}:是一个封装了迭代的语法糖;
上面的语法相信很多人都比较熟悉,经常是用作泛型的遍历;
让我们来看一下底层的实现原理:iterator()->产生一个新的Iterator对象,进而控制整个迭代过程;
显式调用Iterator.hasNext和.next方法完成迭代;
代码缺点:
1. 样板代码较多;
2. 并行方式比较麻烦;
本质上:还是将行为和方法混在了一起;
内部迭代:本质是一个串行化操作;
和外部迭代相比,内部迭代的实现过程,如图:
根本变化点:不是返回一个控制迭代的Iterator对象,而是返回内部迭代中的相应接口:Stream;