可能重复:
Java 枚举和迭代器之间的区别
我正在阅读这篇文章“迭代器与枚举之间的区别”
如果可以使用迭代器方法或枚举方法来执行相同的操作,那么有什么区别?
我应该在哪里使用这些接口中的任何一个?
枚举器是旧版 Java 1.0 的一部分。迭代器只出现在 Java 1.2 中。据我所知,枚举器只是为了向后兼容而保留的。根据Enumerator 的 java 文档,所有新代码都应使用 Iterator 接口。
注意:此接口的功能与迭代器接口相同。此外,Iterator 添加了一个可选的删除操作,并且具有更短的方法名称。新的实现应该考虑使用迭代器而不是枚举。
在遍历集合、列表、集合等或实现该迭代器接口的东西时,您应该使用迭代器。您还可以使用“new”(Java 5) for 循环构造来迭代这样的集合。但是请记住,在循环时从集合中删除项目的唯一安全方法是使用 Iterator.remove() 方法。
迭代器是较新的首选方法。它添加了一个删除功能。
枚举用于获取列表中的连续元素,不能用于以任何方式更改列表,例如通过插入或删除。但是,迭代器是一个实例化的对象,它在列表中维护一个引用,并且可以在该引用处插入和删除元素,以及获取列表中的元素。
如果您只是想获取列表中的元素,枚举和使用迭代器都可以正常工作。但是,如果您需要添加插入和删除的功能,我建议使用迭代器。