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

标签 scala mutable

在 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 错误结束。

最佳答案

如果您想避免创建新的 Buffer

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

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

关于scala - 如何添加到 scala.collection.mutable.Buffer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33721814/

相关文章:

Scala 编译器表示 () 为 "error: identifier expected but integer literal found."而不是 {}

multithreading - 并发程序效率和CPU线程数

python - 是否可以在修改列表成员时监视列表(或可变序列)?

javascript - 通过引用更新嵌套对象

scala - 如何在连接中将 Column.isin 与数组列一起使用?

Scala 如何打印类返回字符串的内容而不是 Class@3c8bdd5b

scala - SBT:如何获取IntegrationTest中的所有定义?

scala - 如何将可变 HashMap 转换为 Scala 中的不可变等价物?

java - 使用 AtomicInteger 代替可变整数是一种好习惯吗?

list - 在 Kotlin 中对 MutableList 中的数据进行排序