如果您所做的只是简单的一次迭代(即只有hasNext()
和next()
,而不是remove()
),您是否保证线性时间性能和/或摊销常数每次操作的成本?迭代器性能合同(并用于非集合)
请问这Iterator
合同中规定的地方?不能在线性时间内反复
是否有数据结构/ Java的Collection
?
java.util.Scanner implements Iterator<String>
。 A Scanner
几乎不是数据结构(例如remove()
绝对没有意义)。这是否被认为是设计失误?
就像PrimeGenerator implements Iterator<Integer>
被认为是坏的设计,或者这正是Iterator
是什么? (hasNext()
总是返回true,next()
按需计算下一个数字,remove()
没有意义)。
同样,将它取得了有意义的java.util.Random implements Iterator<Double>
?
如果一个类型,如果它只是有效使用其API的三分之一真正落实Iterator
? (即,没有remove()
,总是hasNext()
)
否,不,是/否(我*认为*),不,我看起来很好,没有,因为随机可以返回各种各样的下一类型 - 你选择哪一种?最后:如果你有什么会方便地使用这种类型的迭代器,并且不需要remove/hasNext,对我来说确实很好看 – Carl 2010-03-23 20:35:06