Я новичок в Scala и у меня есть функция следующим образом:Scala - странное поведение с Iterator.toList
def selectSame(messages: BufferedIterator[Int]) = {
val head = messages.head
messages.takeWhile(_ == head)
}
Что выбирает из буферного итератора только elems соответствия головы. Я впоследствии, используя этот код:
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), как и ожидалось, но тогда я только получить список (2), как если бы я потерял один элемент вниз линии ... Наверное, я ошибаюсь в итераторах/списках, но я немного потерялся здесь.
извините, я имел в виду List.iterator.buffered. Извинения – user221218