将特定的增量键值添加到数组中

时间:2017-10-21 10:58:25

标签: scala loops mapping scala-collections

我有一个用索引压缩的列表:

val fun_i_map_e = (list.indices zip list).toMap

现在,我希望每个键的值增加num:Int

for (k<-0 until list.length by num)
  for ((k,v) <- fun_i_map_e) {
   bufferArray += v}

这里的想法在Java中是这样的:

for (k = 0; k <= list.length; k+= num){
  //increment key k each time and store value into dynamic array }

然而,我得到了非常随机和完整的垃圾输出。如果有人可以提供帮助,我会很感激,因为我是斯卡拉的新人。

2 个答案:

答案 0 :(得分:1)

你快到了。您所需要的只是使用for塑造yield函数,如下所示

val bufferArray = for (k <- 0 until list.length by num) yield fun_i_map_e(k)

我希望答案很有帮助

答案 1 :(得分:0)

val list = List[Int](5, 6, 7, 8)
val map = list.indices.zip(list).toMap
val num: Int = 15

val incremantedKeys = map.keys.map { k => k  + num }

println("Original keys:")
println(map.keys)
println

println(s"Keys incremented by $num:")
println(incremantedKeys)