私はScalaが初めてで、次のような関数があります:
def selectSame(messages: BufferedIterator[Int]) = {
val head = messages.head
messages.takeWhile(_ == head)
}
これは、ヘッドに一致する要素のみをバッファリングされたイテレータから選択しています。その後、このコードを使用しています:
val messageStream = List(1,1,1,2,2,3,3)
if (!messageStream.isEmpty) {
var lastTimeStamp = messageStream.head.timestamp
while (!messageStream.isEmpty) {
val messages = selectSame(messageStream).toList
println(messages)
}
最初の実行時に、期待どおりに (1,1,1) を取得していますが、1 つの要素を失った場合のように、List(2) しか取得しません...おそらく、イテレータ/リストで間違っている可能性があります、しかし、私はここで少し迷っています。