在Collections Framework中,我们有Iterator
和ListIterator
接口,这些接口用于迭代数据结构。它们提供了完整的迭代功能。但是我不知道为什么JDK在enumeration()
类上有一个Collections
方法。
谁能向我解释这一点?
最佳答案
Iterator
和ListIterator
提供了用于遍历集合的完整工具。实际上,documentation for Iterator本质上说Iterator
取代了Enumeration
。每个集合都是一个Iterable
,因此可以使用Iterator
进行迭代。为什么会有一个方法Collections.enumeration
在该集合上生成一个Enumeration
?
原因是在原始Java 1.0发行版中存在Enumeration
,直到在1.2中添加了collections框架后才引入Iterator
。因此,有大量使用Enumeration
的代码和API。添加了Collections.enumeration
方法以(然后)使基于集合的新代码适应需要使用Enumeration
的旧代码。