Scala заменить последовательность ключей на значения - PullRequest
0 голосов
/ 30 января 2020

У меня есть seq в Scala = (a1, b1, c1, d1) и Map [(a1, "Hello"), (b1, "Bye"), (c1, "Down"), (d1, "Over")]

Я хочу получить Seq, заменив ключи значениями, и получу Final Seq (Hello, Bye, Down, Over) in Scala

Ответы [ 2 ]

1 голос
/ 30 января 2020

Scala s map должны сделать эту работу. В случае, если некоторые ключи могут отсутствовать на карте, вы можете использовать collect.

val a1 = 1;val b1 = 2;val c1 =3;val d1 = 4

val s1 = Seq(a1, b1, c1, d1)
val s2 = Seq(a1, 10, b1, c1, d1)
val m = Map((a1, "Hello"), (b1, "Bye"), (c1, "Down"), (d1, "Over"))

s1 map m        //res0: Seq[String] = List(Hello, Bye, Down, Over)
s2 collect m    //res1: Seq[String] = List(Hello, Bye, Down, Over)
0 голосов
/ 30 января 2020

Если у вас уже есть сопоставленные пары ключ-значение, вы можете просто собрать значения, вызвав .values на карте:

scala> val mappedVals = Map((a1, "Hello"), (b1, "Bye"), (c1, "Down"), (d1, "Over"))
mappedVals: scala.collection.immutable.Map[Int,String] = Map(1 -> Hello, 2 -> Bye, 3 -> Down, 4 -> Over)

scala> mappedVals.values.toList
res6: List[String] = List(Hello, Bye, Down, Over)

Тогда вы можете .toSeq результат, если вы действительно хотите Seq

...