我是 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),但是我只得到了 List(2),就像我丢失了一个元素一样......可能我对迭代器/列表做错了,但我在这里有点迷失了。