2012-10-03 51 views
0

可能重复:
Difference between Java Enumeration and Iterator如何使用迭代器/枚举接口在Java中

我正在读这篇文章 “Difference between Iterator & Enumeration

如果可以使用迭代方法或枚举方法来执行相同的操作,然后有什么区别?

我希望在哪里使用这些接口?

+0

我没有得到你所需要的不是重复的。被接受的答案似乎清晰完整。你能解释你的问题吗? –

+0

hasMoreElement()和hasNext()是否意味着相同? – AppSensei

+0

是的。他们是一样的。一个会保存一些宝贵的八位字节在你的硬盘上。 –

回答

4

枚举器是旧版Java 1.0的一部分。迭代器仅出现在Java 1.2中。据我所知,统计员只保留向后兼容性。根据java docs for Enumerator,所有新代码都应该使用Iterator接口。

注意:此接口的功能由 Iterator接口复制。另外,Iterator添加了一个可选的删除操作,并且具有较短的方法名称。新的实现应该 考虑使用Iterator而不是Enumeration。

您应该在循环访问集合,列表,集合等或实现Iterator接口的东西时使用迭代器。您也可以使用“new”(Java 5)for循环结构遍历这样的集合。但请记住,循环时从集合中删除项目的唯一安全方法是使用Iterator.remove()方法。

3

迭代器是较新的首选方法。它增加了一个删除功能。

1

枚举用于获取列表中的连续元素,并且不能用于以任何方式更改列表,例如通过插入或删除。但是,迭代器是一个实例化对象,它在列表中维护一个引用,并可以在该引用处插入和删除元素,并获取列表中的元素。
如果您只想获取列表中的元素,枚举和使用迭代器都可以正常工作。但是,如果您需要插入和删除的附加功能,我推荐使用迭代器。

+0

我不知道使用迭代器插入任何方法。 – AppSensei

+0

是的,您在Java API方面是正确的,我的错误。但是,就实现迭代器而言,通常会创建插入方法。 –

+0

是的,我同意这一点。谢谢。 – AppSensei