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