Iterator-迭代器¶
迭代器模式(Iterator Design Pattern),也叫作游标模式(Cursor Design Pattern)
备注
accesses the elements of an object sequentially without exposing its underlying representation.
Iterator 接口有两种定义方式:
1. next () 函数用来将游标后移一位元素,currentItem () 函数用来返回当前游标指向的元素
2. 返回当前元素与后移一位这两个操作,要放到同一个函数 next () 中完成。
使用迭代器为啥不能增删元素¶
在通过迭代器来遍历集合元素的同时,增加或者删除集合中的元素,有可能会导致某个元素被重复遍历或遍历不到。不过,并不是所有情况下都会遍历出错,有的时候也可以正常遍历,所以,这种行为称为结果不可预期行为或者未决行为,也就是说,运行结果到底是对还是错,要视情况而定。
有两种比较干脆利索的解决方案:
一种是遍历的时候不允许增删元素
另一种是增删元素之后让遍历报错。