2017-10-21 146 views
1

我有我与指数拉上一个名单:获取特定的增量键值到一个数组

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 } 

但是,我得到非常随机和完整的垃圾输出吨。如果有人能帮助我,因为我是Scala新手,我将不胜感激。

回答

1

你快到了。所有你需要的是塑造你for功能与yield下面

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

我希望答案是有帮助的

给出
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) 
相关问题