In Scala würde ich in der Lage sein möchten, schreibenScala Immutable MultiMap
val petMap = ImmutableMultiMap(Alice->Cat, Bob->Dog, Alice->Hamster)
Die zugrunde liegende Map [Besitzer, Set [Pet]] haben, sollten beide Karten und unveränderlich fest. Hier ist ein erster Entwurf für ImmutibleMultiMap mit Begleitobjekt:
import collection.{mutable,immutable}
class ImmutableMultiMap[K,V] extends immutable.HashMap[K,immutable.Set[V]]
object ImmutableMultiMap {
def apply[K,V](pairs: Tuple2[K,V]*): ImmutableMultiMap[K,V] = {
var m = new mutable.HashMap[K,mutable.Set[V]] with mutable.MultiMap[K,V]
for ((k,v) <- pairs) m.addBinding(k,v)
// How do I return the ImmutableMultiMap[K,V] corresponding to m here?
}
}
Können Sie die Kommentarzeile elegant lösen? Sowohl die Karte als auch die Mengen sollten unveränderlich werden.
Danke!
Dies als Beispiel dafür, wie nützlich sein kann, eine veränderbare zu einer unveränderlichen Karte zu konvertieren: http://stackoverflow.com/questions/2817055/ Converting-Mutable-to-immable-Karte –