2015-07-28 26 views
8

vs bir Scala Map ve HashMap arasında bir fark var mı? scala.collection.immutable.HashMap kullanıyorum. scala.collection.immutable.HashMap bir somut uygulama ikenScala Harita HashMap

+0

[ 'HashMap'] (http verir: // www.scala-lang.org/api/2.11.5/index.html#scala.collection.immutable.HashMap) [ 'Map'] bir uygulama (http://www.scala-lang.org/api/ olduğu 2.11.5/index.html # scala.collection.immutable.Map). Tanımlarında görebildiğiniz gibi, 'HashMap' bir sınıftır ve 'Harita' bir özelliktir. Gelen –

+1

[Scala _Programming, 1ed_] (http://www.artima.com/pins1ed/collections.html#17.3) onlar 'HashMap' için varsayılan uygulamadır olduğunu yazmak ("_Default değişmez haritası implementations_" için arama) 5 element veya daha fazla bir 'Harita'. –

cevap

13

scala.collection.immutable.Map değişmez haritalar için arayüzüdür. Map() veya Map.empty ile oluşturma

kadar olan pozisyonları çiftlerine Map(a -> b) ile özel bir boş tekil haritayı verir gibi küçük haritalar ve 5 için özel sınıflar verir ve yukarı size scala.collection.immutable.HashMap

+0

Yazar, postada scala.collection.immutable.Map veya scala.collection.Map belirtmedi. Scala.collection.Map() ayrıca scala.collection.immutable.Map() ile aynı sonuçlanan Map uygulamalarını verir mi? –

+1

'scala.collection.Map. {Boş uygulamak}' değişmez 'Map' arkadaşı karşılık gelen fabrika yöntemlerine sadece delegeler. Örneğin bir metod imzasında "scala.collection.Map" ifadesini açıkça kullanıyorsanız, bu değişkenin yanı sıra değiştirilebilen haritaları da kabul edecektir. Otomatik olarak içe aktarılan (Predef) "Harita", "immutable.Map" dır. – johanandren