如何在Array[Double]中添加相邻的值

  • 本文关键字:添加 Array Double scala
  • 更新时间 :
  • 英文 :

val values = Array[Double].sliding(2).map(x => x.reduce(_ + _) / 2)

这个工作成功。但是,如果该数组包含10000个或更多的值,则需要花费一些时间来获取这些值。有没有更快的方法来找到相邻的值?

我认为这应该更快:

val values = (for(i <- 0 until array.length - 1) yield ((array(i) + array(i + 1)) / 2)).toArray

进入低级:

var i = 0
val valuesLength = array.length - 1
val values = new Array[Double](valuesLength)
while (i < valuesLength) {
  values(i) = (array(i) + array(i + 1)) / 2
  i += 1
}

当然,只有当这实际上是程序中的瓶颈时,您才应该这样做。

最新更新