一尘不染

Java枚举和迭代器之间的区别

java

这两个接口之间的确切区别是什么?是否Enumeration有过使用效益Iterator?如果有人可以详细说明,将不胜感激。


阅读 195

收藏
2020-09-09

共1个答案

一尘不染

查看该Iterator接口的Java
API规范,对以下两者之间的区别进行了说明Enumeration

迭代器与枚举有以下两种不同:

  • 迭代器允许调用者在迭代期间使用定义明确的语义从基础集合中删除元素。
  • 方法名称已得到改进。

底线是,既EnumerationIterator会给连续元素,但Iterator以这样的方式得到改善,从而该方法名是短,并且具有附加的remove方法。这是一个并排比较:

  Enumeration                     Iterator
  ----------------                ----------------
  hasMoreElement()                hasNext()
  nextElement()                   next()
  N/A                             remove()

如Java
API规范中所述,对于新程序,Iterator应优先于Enumeration,因为“在Java集合框架中,迭代器代替了枚举”。(根据Iterator规格。)

2020-09-09