比较内部迭代器和外部迭代器
时间:2012-6-11
虽然内部迭代器和外部迭代码能完成遍历一个集合的相同工作,但是它们在实际使用中还是有不同之处的,外部迭代器当然具备一些优势,例如,当你使用一个外部迭代器时,是使用迭代器的客户在控制这个迭代器,而在使用内部迭代器时,你只有等访问下个元素的条件全部成熟之后才能调用next.相反,在使用内部迭代器时,这个集合会敬业地将你传入的代码块施用于一个又一个的子元素上.
在大多数情况下,这种差异是无关紧要的,但是,比如当你想要将两个排序过的数组合并成一个自我排序的数组时,这种合并在使用类似于ArrayInterator这样的外部迭代器的情况下就很简单,我们只需要为这两个输入的数组创建一个迭代器,然后通过持续地将两个数组中的最小值加入输出数组的方式就可以实现.