olenji

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

接口Iterator 

主要需要实现的方法:

abstract public mixed current ( void )
abstract public scalar key ( void )
abstract public void next ( void )
abstract public void rewind ( void )
abstract public boolean valid ( void )
在一个foreach中,首先会调用 rewind()方法,将指针置为开始位置,使用valid()方法检测是否合法,接着current(),再key()。如此一个循环结束,接着第二循环,先调用next()方法,valid(),current(),key(),如此不断反复直到valid()为false;所以可以发现的是再循环时,使用的是值传递,并不是传引用,所以对循环中的kv修改并不能对原迭代器重的数据起作用。
posted on 2015-10-02 09:57  olenji  阅读(162)  评论(0编辑  收藏  举报