當我們創建一個集合以後,可以直接使用system.out.println()來打印這個集合,但是,我們需要可以對每個元素進行操作,所以,這裡需要使用迭代器來遍歷集合
迭代器其實就是集合取出元素的方式
調用List對象的iterator()方法,得到Iterator對象,這個類是個接口類型,因此可以知道返回的是Iterator接口的子對象
while()循環,條件是,List對象的hasNext()方法,返回布爾值不為false
循環裡面調用List對象的next()方法,可以得到每一個元素
import java.util.ArrayList; import java.util.Iterator; import java.util.List; public class IteratorDemo { /** * @param args */ public static void main(String[] args) { List<String> list=new ArrayList<String>(); list.add("taoshihan1"); list.add("taoshihan2"); list.add("taoshihan3"); Iterator iterator=list.iterator(); while(iterator.hasNext()){ System.out.println(iterator.next()); } } }
PHP版:
php中最常用的迭代式foreach(),我們也可以自己實現一個迭代器
<?php $list=array("taoshihan1","taoshihan2","taoshihan3"); /** * 迭代器 * @author taoshihan */ class MyIterator implements Iterator{ public $index=0; public $arr; public function __construct($arr){ $this->arr=$arr; } public function current(){ return $this->arr[$this->index]; } public function next(){ ++$this->index; } public function key(){ return $this->index; } public function valid(){ return isset($this->arr[$this->index]); } public function rewind(){ $this->index=0; } } $myIterator=new MyIterator($list); $myIterator->rewind();//指針指向第一個 while($myIterator->valid()){//循環 當元素為真時 echo $myIterator->current();//打印當前元素 $myIterator->next();//指針往後移動一個 }