2013-12-13 27 views

回答

5

scala.collection.immutable.Queuescala.collection.Seq。請參閱Seqdocumentation

序列是Iterable類的可迭代集合的特例。與迭代不同,序列總是具有定義的元素順序。

所以,是的,你會得到相同的元素與foreach和帶環+ dequeue訂購。

如果你不信任的文檔,你可以看看實現:

Queue#foreachIterableLikeimplemented繼承這樣的:

def foreach[U](f: A => U): Unit = iterator.foreach(f) 

Queue#iteratorimplemented這樣的:

override def iterator: Iterator[A] = (out ::: in.reverse).iterator 

And Queue#dequeuereturns th e第一個元素out,如果有的話,或者最後一個元素in。所以你會得到相同的元素順序。

+0

實際上,在這種情況下,我更重視文檔而不是實現,因爲我認爲文檔承諾這種行爲不僅僅是「意外」,而是實際縮進並保持這種狀態。 –