小编Per*_*ing的帖子

Scala不可变MultiMap

在Scala我希望能够写

val petMap = ImmutableMultiMap(Alice->Cat, Bob->Dog, Alice->Hamster)
Run Code Online (Sandbox Code Playgroud)

底层Map [Owner,Set [Pet]]应该同时具有Map和Set不可变.这是ImmutibleMultiMap与伴随对象的初稿:

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?
  }
}
Run Code Online (Sandbox Code Playgroud)

你能优雅地解决评论线吗?地图和集合都应该是不可变的.

谢谢!

scala map immutability multimap scala-collections

10
推荐指数
2
解决办法
2980
查看次数

标签 统计

immutability ×1

map ×1

multimap ×1

scala ×1

scala-collections ×1