0

如果我有这样的排序流:

Stream(1, 1, 2, 2, 2, 3, 4, 4, 5)

如何将其内容分组如下:

Stream(List(1, 1), List(2, 2, 2), List(3), List(4, 4), List(5))

没有立即对流进行完全评估?

4

1 回答 1

1

你可以使用这样的东西,但它只适用于排序的流

def groupValues(stream: Stream[Int]): Stream[List[Int]] = {
    if(stream.isEmpty) {
      Stream.empty
    } else {
      val head = stream.head
      val list = stream.takeWhile(_ == head).toList
      list #:: groupValues(stream.drop(list.size))
    }
  }
于 2017-10-23T21:14:43.677 回答