25

ソート基準に従ってソートされた方法でアイテムを返す複数のイテレータがあります。ここで、イテレータを 1 つの結合イテレータにマージ (多重化) したいと思います。ツリーマップなどを使ってJavaスタイルでそれを行う方法を知っていますが、もっと機能的なアプローチがあるかどうか疑問に思っていましたか? イテレータの遅延を可能な限り維持したいと考えています。

4

3 に答える 3

3

あなたは試すことができます:

(iterA ++ iterB).toStream.sorted.toIterator

例えば:

val i1 = (1 から 100 x 3).toIterator
val i2 = (2 から 100 x 3).toIterator
val i3 = (3 から 100 x 3).toIterator

マージされた値 = (i1 ++ i2 ++ i3).toStream.sorted.toIterator

merged.next // 結果: 1
merged.next // 結果: 2
merged.next // 結果: 3
于 2013-05-01T10:49:04.153 に答える