如何添加到 scala.collection.mutable.Buffer

How to add to scala.collection.mutable.Buffer

在scala中,我想把一个Seq的内容累加到一个Buffer中,避免每次添加都构造一个新的Buffer。我做了这样的事情:

import scala.collection.mutable.Buffer
var sum = Buffer[Double](1.0,2.0)
sum.append(3.0)
val add = Seq[Double](4.0,5.0,6.0)
for( i <- 0 until sum.size ) sum.update(i,sum(i)+add(i))

有没有办法避免for循环。我用 zip 尝试过的任何事情都以重新分配给 val 错误结束。

试试这个:

sum = add.zip(sum).map(item => item._1+item._2).toBuffer
如果您想避免创建新的 Buffer

zip 没有太大帮助,但您可以使用 zipWithIndex 来确定应该添加当前索引的索引元素,和 view 以避免在内存中创建序列:

add.view.zipWithIndex.foreach {
  case (value, index) => sum(index) += value
}