• java对象群体的组织:Enumeration及Iterator类


    在一般情况下,遍历集合类会使用一下方式:

    for(int i=0;i<v.size();i++)< p="">

    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使用的应该是单链存储结构,所以能够与其对应的集合对象保持一致。

  • 相关阅读:
    洛谷 3393 逃离僵尸岛
    洛谷 3275 [SCOI2011]糖果
    SP1437 Longest path in a tree(树的直径)
    洛谷2483 k短路([SDOI2010]魔法猪学院)
    洛谷3243 [HNOI2015]菜肴制作
    洛谷 4568 [JLOI2011] 飞行路线
    [USACO08DEC]在农场万圣节Trick or Treat on the Farm
    手机端table表格bug
    手机端左右滑动效果
    去掉手机端延迟300ms
  • 原文地址:https://www.cnblogs.com/xuewater/p/3326349.html
Copyright © 2020-2023  润新知