Обсуждение о возврате immutable.Map
против immutable.HashMap
, несмотря на то, как насчет простого использования метода toMap
:
scala> val m = collection.mutable.HashMap(1 -> 2, 3 -> 4)
m: scala.collection.mutable.HashMap[Int,Int] = Map(3 -> 4, 1 -> 2)
scala> m.toMap
res22: scala.collection.immutable.Map[Int,Int] = Map(3 -> 4, 1 -> 2)
Начиная с 2.9, здесь используется метод toMap
в TraversableOnce
, который реализован следующим образом:
def toMap[T, U](implicit ev: A <:< (T, U)): immutable.Map[T, U] = {
val b = immutable.Map.newBuilder[T, U]
for (x <- self)
b += x
b.result
}