Comment puis - je convertir immutable.Map
à mutable.Map
Scala afin que je puisse mettre à jour les valeurs Map
?
scala
dictionary
scala-2.8
Łukasz Lew
la source
la source
: _*
est un peu comme l'attribution de type, indiquant au compilateur exactement quel type attribuer à une expression donnée. Vous pouvez le considérer ici comme disant "prenez cette séquence et traitez-la comme un certain nombre de paramètres vararg".la source
O(1)
étapes. Cela semble être le casO(n)
, bien que cela dépende bien sûr de l'intelligence de la mise en œuvre++
.O(n)
. Dans la limite lorsque vous modifiez tout, cela doit êtreO(n)
, bien que vous puissiez essayer de différer la création de la nouvelle copie pour gagner du temps, ou vous doublez vos temps d'accès en lisant les changesets au lieu de la carte d'origine. Celui qui fonctionne le mieux dépend probablement de votre cas d'utilisation.Que diriez-vous d'utiliser collection.breakOut?
la source
mutable.Map#apply
d'un peu plus passe- partout.Démarrage
Scala 2.13
, via les constructeurs d'usine appliqué avec.to(factory)
:la source
Il existe une variante pour créer un mutable vide
Map
dont les valeurs par défaut sont extraites de l'immuableMap
. Vous pouvez stocker une valeur et remplacer la valeur par défaut à tout moment:Attention (voir le commentaire de Rex Kerr): Vous ne pourrez pas supprimer les éléments provenant de la carte immuable:
la source