2017-10-21 82 views
1

J'ai une liste que je zippé avec des indices:Obtenir des valeurs clés supplémentaires spécifiques dans un tableau

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

Maintenant, je veux obtenir la valeur de chaque touche incrémentée de num:Int:

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

L'idée voici quelque chose comme ça en Java:

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

Cependant, je reçois très aléatoire et complète outpu t. J'apprécierais que quelqu'un puisse aider car je suis nouveau à Scala.

Répondre

1

Vous y êtes presque. Tout ce que vous avez besoin est de façonner votre fonction for avec yield comme indiqué ci-dessous

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

J'espère que la réponse est utile

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)