Jim*_*uch 1 java iterator enumeration vector
我只是漫游API,我注意到,Enumerations和Iterators不是非常有用的接口.
具体来说,我的意思是,而不是说(对于Vector v):
for (Enumeration<E> e = v.elements(); e.hasMoreElements();)
   System.out.println(e.nextElement());
我们可以很容易地说:
for (int i = 0; i < v.size(); i++)
   System.out.println(v.elementAt(i));
我想知道的是:
使用Enumerations/Iterators是否有任何性能奖励?
它是否为您提供了实现后者循环无法实现的功能?
我不认为迭代器和枚举是关于性能的; 他们是关于更好的抽象.
如果您有迭代器,则无需了解有关底层数据结构的任何信息.这就是我认为界面完全可以接受的原因.我不同意你的说法,即Iterator不是一个有用的界面.你会添加什么方法?
并非一切Iterator都是随机访问List.Set例如,A 不允许索引访问.A LinkedList允许它,但按索引循环会产生糟糕的性能.
其他根本不Collection具备Iterator的东西或者也可以表示为其他东西Iterator.例如,一个人可以用一个代表无限序列Iterator.
具有用于迭代事物的简单,通用接口允许可以在尽可能多的对象上操作的方法.
顺便说一句,无论是Vector和Enumeration已经过时,已经基本在现代的Java替代ArrayList和Iterator分别.
| 归档时间: | 
 | 
| 查看次数: | 3604 次 | 
| 最近记录: |