枚举(Enumeration0)与迭代器(Iterator)

1.枚举(Enumeration)接口

枚举接口是从以前版本遗留下来的。枚举接口定义了可以对一个对象的类集中的元素进行枚举(一次获得一个)的方法。这个接口尽管没有被摒弃,但已经被Iterator所替代。枚举对新程序来说是过时的,然而它仍被几种从以前版本遗留下来的类(例如Vector,Hashtable和Properties)所定义的方法使用,被几种其它的API类及被目前广泛使用的应用程序所使用。

Enumeration指定下面的两个方法:

  • boolean hasMoreElement();
  • Object nextElement();

对于Enumeration可以以Vector为例。Vector里面有很多对象,如果你想查看其中的所有对象,一个办法是用Vector的get(int index)方法,不过这样效率比较低,另外一个方法是用Vector的elements()方法返回一个Enumeration对象,用Enumeration的hasMore()方法向下移并判断当前位置是否有对象,有则用nextElement()方法返回这个对象。

例如,打印vector v中的所有对象:

Enumeration e=v.element();

while(e.hasMoreElement()){

System.out.print(e.nextElement());

}

2.迭代器(Iterator)接口

另外还有个Iterator接口,与Enumeration差不多,不过名称比较短,通常推荐用Iterator对象Collection集合进行迭代。迭代器代替了Java Collections Framework中的Enumeration。Collection接口中定义了iteraor()方法,用于返回在此collection的元素上进行迭代的迭代器。

迭代器提供了如下3个方法供Collection类的实例使用:

boolean hasNext();

Object next();

void remove();

例如,要输出Vector 对象 vect 的迭代器,可以这样写:

Iterator it=vect.iterator();

while(it.hasNext()){

Object obj=it.next();

}

从使用方法来看两者类似,新的实现应该优先考虑Iterator接口。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值