在一般情况下,遍历集合类会使用一下方式:
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使用的应该是单链存储结构,所以能够与其对应的集合对象保持一致。
钱财何足贵,仁义值千金。