0
我有String鍵和Seq [Int]值的映射。如何將Seq [Int]同時減少爲每個鍵的單個Int值。同時降低地圖值
例如:
Map("xxx" -> (1 to 10), "yyy" -> (100 to 200))
應減少到
Map("xxx" -> 55, "yyy" -> 15150)
同時在地圖的每個鍵。
我有String鍵和Seq [Int]值的映射。如何將Seq [Int]同時減少爲每個鍵的單個Int值。同時降低地圖值
例如:
Map("xxx" -> (1 to 10), "yyy" -> (100 to 200))
應減少到
Map("xxx" -> 55, "yyy" -> 15150)
同時在地圖的每個鍵。
下面應該使用期貨。
import scala.concurrent.ExecutionContext.Implicits.global
import scala.concurrent.{Future, Await}
import scala.concurrent.duration.Duration
val data = Map("xxx" -> (1 to 10), "yyy" -> (100 to 200))
Await.result(Future.sequence(data.map({ case (x,y) => Future { x -> y.sum } })), Duration.Inf).toMap
res1: scala.collection.immutable.Map[String,Int] = Map(xxx -> 55, yyy -> 15150)
您可以對地圖和範圍 使用平行集合,例如,
val x= Map("xxx" -> (1 to 10), "yyy" -> (100 to 200))
x.par.map{case (a,b)=>(a,b.par.sum)}