У меня есть listMap1 переменную типа List [Map [String, String]], и я хочу, чтобы все значения, связанные с ключом «k1» в одну строку с разделителями значений, разделенныхКак получить значения, разделенные запятой, из списка карт в Scala?
import fiddle.Fiddle, Fiddle.println
import scalajs.js
@js.annotation.JSExport
object ScalaFiddle {
var m1:Map[String,String] = Map(("k1"->"v1"), ("k2"->"vv1"))
var m2:Map[String,String] = Map(("k1"->"v2"),("k2"->"vv2"))
var m3:Map[String,String] = Map(("k1"->"v3"),("k2"->"vv3"))
var listMap1 = List(m1,m2,m3)
var valList = ?? // need all values assoicated with k1 like --> v1,v2,v3...
}
Из любопытства. Производительность, плоская карта быстрее, чем использование фильтра + карты ??? – Pavel
@Pavel - я бы предположил, что «flatMap» выполняется быстрее, так как для этого требуется только один ключевой поиск и создается только один промежуточный список вместо двух. – Lee
Существует также старый режим ожидания для лучшей производительности, избегая любых промежуточных списков вообще: 'listMap1.iterator.flatMap (_. Get (" k1 "). Iterator) .mkString (", ")'. –