當我們創建一個集合以後,可以直接使用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();//指針往後移動一個
}