java容器之Iterator

每種容器自身底層實現的原理不同,例如ArrayList底層採用數組實現,LinkedList底層採用鏈表實現。因此Collection很難給出一個統一 的用於遍歷各種容器的方法。這項工作只有交給每個容器自己去做。

具體的做法就是每個容器都必須實現iterator方法。該方法返回一個實現了Iterator接口的對象。通過該對象來對容器進行遍歷

Iterator接口定義了以下的方法,故iterator方法返回的對象能夠調用以下的方法來實現對數組的遍歷。

以下是一個利用Iterator進行遍歷的例子

package com.fw.proxy;

import java.util.*;
import java.util.ArrayList;

public class Test {
	public static void main(String[] args) {
		List<String> list  = new ArrayList<String>();
		for(int i=0;i<10;++i) {
			list.add("str:"+i);
		}
		//拿到實現了Iterator接口的對象。利用該對象對容器進行遍歷
		Iterator<String> iterator = list.iterator();
		while(iterator.hasNext()) {//判斷容器裏是否還有值
			System.out.println(iterator.next());
		}
		
	}
	
	

}

另外,特別需要注意的是

因爲Iterator在對容器進行遍歷的時候,會對裏面的元素進行鎖定。只能自己操作。不允許容器自身進行類似於刪除的操作。因此刪除操作也只能由Iterator進行

 

 

同時List類不僅可以利用Iterator訪問同時還可以利用下標進行訪問

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章