如果您所做的只是简单的一次迭代(即仅hasNext()
and next()
, no remove()
),您是否能保证每次操作的线性时间性能和/或摊销恒定成本?
这是否在Iterator
到处签约?
有没有数据结构/JavaCollection
哪些不能在线性时间内迭代?
java.util.Scanner implements Iterator<String>
. A Scanner
几乎不是一种数据结构(例如remove()
完全没有意义)。这是否被认为是设计错误?
是类似的东西PrimeGenerator implements Iterator<Integer>
被认为是糟糕的设计,或者这正是Iterator
是为了? (hasNext()
总是返回 true,next()
按需计算下一个数字,remove()
没有意义)。
同样,这对于java.util.Random implements Iterator<Double>
?
一个类型是否应该真正实现Iterator
如果它实际上只使用了三分之一的 API? (即没有remove()
, 总是hasNext()
)
没有这样的保证。正如您所指出的,任何人都可以将任何东西建模为迭代器。迭代器的各个生产者必须指定他们的个人性能。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)