62.scala程式設計思想筆記——映射表
歡迎轉載,轉載請标明出處:http://blog.csdn.net/notbaron/article/details/50458732
源碼下載下傳連接配接請見第一篇筆記。
Map(映射表)将鍵與值關聯起來。當給定一個鍵時,Map會找出對應的值。
例如:
import com.atomicscala.AtomicTest._
val constants = Map("Pi" -> 3.141,
"e"-> 2.718, "phi" -> 1.618)
Map(("Pi", 3.141), ("e", 2.718),
("phi", 1.618)) is constants
Vector(("Pi", 3.141), ("e",2.718),
("phi", 1.618)).toMap is constants
// Look up a value from a key:
constants("e") is 2.718
constants.keys is "Set(Pi, e, phi)"
constants.values is
"MapLike(3.141, 2.718, 1.618)"
// Iterate through key-value pairs:
(for(pair <- constants)
yieldpair.toString) is
"List((Pi,3.141), (e,2.718), (phi,1.618))"
// Unpack during iteration:
(for((k,v) <- constants)
yield k +": " + v) is
"List(Pi: 3.141, e: 2.718, phi: 1.618)"
其中Map還可以用逗号分離的元組清單來初始化。
針對Map,()操作符可以用來查找。通過keys方法可以獲得所有鍵,而通過values方法可以獲得所有值。
例子如下:
import com.atomicscala.Name
trait Pet extends Name
class Bird extends Pet
class Duck extends Bird
class Cat extends Pet
class Dog extends Pet
val petMap = Map("Dick" -> new Bird,
"Carl" -> new Duck, "Joe" -> new Cat,
"Tor" -> new Dog)
petMap.keys is
Set("Dick", "Carl","Joe", "Tor")
petMap.values.toVector is
"Vector(Bird, Duck, Cat, Dog)"
其實,Map看起來就像是簡單的小型資料庫。