在一般情況下,遍歷集合類會使用一下方式:
for(int i=0;i<v.size();i++)
Customer c=(Custormer)v.get(i);
使用Enumeration類和Iterator類可以簡化這個過程
1.Enumeration類 (權舉)
使用范圍:Vector類
方法:
boolean hasMoreElement() //測試此枚舉是否包含更多的元素.
Enumeration nextElement() //如果此枚舉對象至少還有一個可提供的元素,則返回此枚舉的下一個元素。
使用舉例:
Enumeration e=v.enumeration();
while(e.hasMoreElement())
Customer c=(Customer)e.nextElement(); //注意:使用Enumeration同樣需要對元素進行顯式轉換
缺點:在遍歷過程中刪除元素效果,原因唔系好清楚,所以建議使用Iterator類的remove()
2.Iterator類 //據說是Enumeration類的改進版
使用范圍:Vector類,ArrayList類,HashTable類等等
方法:
boolean hasNext() //判斷是否還有下一個元素
Iteraor next() //返回下一元素
void remove() //從集合類仲去除最後調用next()返回的元素。注意:調用集合類的remove()刪除元素效果的效果唔理想,所以建議使用Iterator類的remove()
使用舉例:
Iterator e=v.elemention();
while(e.hasNext())
Customer c=(Customer)e.next(); //講埋最後一次,獲取集合類的元素時必須進行顯式轉換,一定要記住
心得體會:
本人認為Vector類使用順序存儲結構,所以對於不用長度的元素處理能力較差。而Iterator使用的應該是單鏈存儲結構,所以能夠與其對應的集合對象保持一致。