Scala Je voudrais pouvoir écrireScala Immuable MultiMap
val petMap = ImmutableMultiMap(Alice->Cat, Bob->Dog, Alice->Hamster)
La carte sous-jacente [propriétaire, Set [Pet]] doit avoir à la fois Carte et Set immuable. Voici un premier projet de ImmutibleMultiMap avec un objet compagnon:
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?
}
}
Pouvez-vous résoudre la ligne de commentaire avec élégance? La carte et les ensembles devraient devenir immuables.
Merci!
Cela peut être utile comme un exemple de la façon de convertir un mutable à une carte immuable: http://stackoverflow.com/questions/2817055/ conversion-mutable-à-immuable-carte –