62.scala编程思想笔记——映射表
欢迎转载,转载请标明出处:blog.csdn.net/notbaron/ar…
源码下载连接请见第一篇笔记。
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.AtomicTest._
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看起来就像是简单的小型数据库。