如果您所做的只是簡單的一次迭代(即只有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