In Scala mi piacerebbe essere in grado di scrivereScala Immutabile MultiMap
val petMap = ImmutableMultiMap(Alice->Cat, Bob->Dog, Alice->Hamster)
Il sottostante Map [proprietario, Set [Pet]] dovrebbe avere sia Mappa e Set immutabile. Ecco una prima bozza per ImmutibleMultiMap con oggetto companion:
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?
}
}
Riesci a risolvere la riga di commento con eleganza? Sia la mappa che i set dovrebbero diventare immutabili.
Grazie!
Questo può essere utile come un esempio di come convertire un mutabile a una mappa immutabili: http://stackoverflow.com/questions/2817055/ converting-mutable-to-immutable-map –