假設我有Iterator[A]
(大小是無限的),並且我想從中得到Iterator[B]
其中類型A的某些後續值被聚合。如何在Scala中編寫聚合模式?
例子: 我有一個字符串列表:
Iterator(
"START",
"DATA1",
"DATA2",
"DATA3",
"START",
"DATA1",
"DATA2",
//.. 10^10 more records
)
我想從開始加入串下一個啓動排除。即編寫解析器。
Iterator(
"START DATA1 DATA2 DATA3",
"START DATA1 DATA2",
//.. 10^10/5 more records
)
我知道如何做到這一點勢在必行,但我想用scala高階函數來完成它。有任何想法嗎?
PS EIP Aggregate http://camel.apache.org/aggregator2.html。
我有點困惑。如果迭代器的底層實現是Stream,那麼爲什麼它不夠?即爲什麼當我們只使用一個Iterator時,我們會明確地使用一個Stream,如果這個Iterator恰好在一個Stream上迭代,那麼好嗎? –
因爲迭代器是可變的。調用next將改變迭代器的狀態。我只是想提供一個功能齊全的解決方案。 – paradigmatic
啊,夠公平的。謝謝。我只是確保沒有更多的險惡我失蹤。 –