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
}
当然,只有当这实际上是程序中的瓶颈时,您才应该这样做。