Wie kann ich in Scala konvertieren immutable.Map
, mutable.Map
um die Werte in zu aktualisieren Map
?
scala
dictionary
scala-2.8
Łukasz Lew
quelle
quelle
: _*
ähnelt der Typzuweisung und teilt dem Compiler genau mit, welcher Typ einem bestimmten Ausdruck zugewiesen werden soll. Sie können sich das hier so vorstellen, dass Sie sagen: "Nehmen Sie diese Sequenz und behandeln Sie sie als eine Reihe von vararg-Parametern."quelle
O(1)
. Dies scheint zu seinO(n)
, obwohl dies natürlich davon abhängt, wie clever die Implementierung++
ist.O(n)
. Wenn Sie alles ändern, muss dies der Fall seinO(n)
. Sie können jedoch versuchen, die Erstellung der neuen Kopie zu verschieben, um Zeit zu sparen, oder Sie verdoppeln Ihre Zugriffszeiten, indem Sie Änderungssätze anstelle der ursprünglichen Karte lesen. Welche Leistung am besten erbracht wird, hängt wahrscheinlich von Ihrem Anwendungsfall ab.Wie wäre es mit collection.breakOut?
quelle
mutable.Map#apply
mit etwas mehr Boilerplate.Starten
Scala 2.13
über Fabrikbauer angewendet mit.to(factory)
:quelle
Es gibt eine Variante, um eine leere veränderbare Variable zu erstellen
Map
, deren Standardwerte von der unveränderlichen übernommen wurdenMap
. Sie können jederzeit einen Wert speichern und den Standardwert überschreiben:Vorsichtsmaßnahme (siehe Kommentar von Rex Kerr): Sie können die Elemente aus der unveränderlichen Karte nicht entfernen:
quelle