private[this]object MMMap extends HashMap[A, Set[B]] with MultiMap[A, B]
Comment le convertir en immuable?
private[this]object MMMap extends HashMap[A, Set[B]] with MultiMap[A, B]
Comment le convertir en immuable?
L'immuable hiérarchie ne contient pas une MultiMap, de sorte que vous ne serez pas en mesure d'utiliser des convertis de la structure avec la même pratique de la syntaxe. Mais si vous êtes heureux de traiter avec clé/valueset paires, puis:
Si vous voulez juste une mutable HashMap
, vous pouvez simplement utiliser x.toMap
à 2,8 collection.immutable.Map(x.toList: _*)
2,7.
Mais si vous voulez l'ensemble de la structure pour être immuable, y compris l'ensemble sous-jacent!--ensuite, vous devez faire plus: vous avez besoin de convertir les jeux le long du chemin. En 2.8:
x.map(kv => (kv._1,kv._2.toSet)).toMap
En 2.7:
collection.immutable.Map(
x.map(kv => (kv._1,collection.immutable.Set(kv._2.toList: _*))).toList: _*
)
scala> val mutableMap = new HashMap[Int, String]
mutableMap: scala.collection.mutable.HashMap[Int,String] = Map()
scala> mutableMap += 1 -> "a"
res5: mutableMap.type = Map((1,a))
scala> mutableMap
res6: scala.collection.mutable.HashMap[Int,String] = Map((1,a))
scala> val immutableMap = mutableMap.toMap
immutableMap: scala.collection.immutable.Map[Int,String] = Map((1,a))
scala> immutableMap += 2 -> "b"
<console>:11: error: reassignment to val
immutableMap += 2 -> "b"
^
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.