scala> val a =Map("name"->"ruoze","age"->30)
a: scala.collection.immutable.Map[String,Any]=Map(name -> ruoze, age ->30)
查询
scala>a("name")
res0: Any = ruoze
scala>a("age")
res1: Any =30
因为是定长Map,没有"J ge"这个值
scala>a("J ge")
java.util.NoSuchElementException: key not found:J ge
at scala.collection.MapLike$class.default(MapLike.scala:228)
at scala.collection.AbstractMap.default(Map.scala:59)
at scala.collection.MapLike$class.apply(MapLike.scala:141)
at scala.collection.AbstractMap.apply(Map.scala:59)...32 elided
因为是不可变的Map,所以也改不掉,也加不了
scala>a("name")="J ge"<console>:13: error: value update is not a member of scala.collection.immutable.Map[String,Any]a("name")="J ge"^
scala>a("gender")="male"<console>:13: error: value update is not a member of scala.collection.immutable.Map[String,Any]a("gender")="male"^
2.可变的Map
scala>import scala.collection.mutable.Map
import scala.collection.mutable.Map
scala> val b =Map("name"->"ruoze","age"->30)
b: scala.collection.mutable.Map[String,Any]=Map(age ->30, name -> ruoze)
取值
scala>b("name")
res6: Any = ruoze
改值
scala>b("name")="J"
scala> b
res8: scala.collection.mutable.Map[String,Any]=Map(age ->30, name ->J)
改值
scala>b("age")="20"
scala> b
res10: scala.collection.mutable.Map[String,Any]=Map(age ->20, name ->J)
3.HashMap
scala> val c=scala.collection.mutable.HashMap("name"->"ruoze","age"->30)
c: scala.collection.mutable.HashMap[String,Any]=Map(age ->30, name -> ruoze)
取值
scala>c("name")
res11: Any = ruoze
scala>c("age")
res12: Any =30
改值
scala>c("age")="40"
scala> c
res14: scala.collection.mutable.HashMap[String,Any]=Map(age ->40, name -> ruoze)
4.用法
本来取一个c本身没有的key会报错,用getOrElse方法就不会报错
scala>c("gender")
java.util.NoSuchElementException: key not found: gender
at scala.collection.MapLike$class.default(MapLike.scala:228)
at scala.collection.AbstractMap.default(Map.scala:59)
at scala.collection.mutable.HashMap.apply(HashMap.scala:65)...32 elided
getOrElse的用法,去c里面找key,没有放一个unknoen,不报错
scala> c.getOrElse("gender","unknown")
res15: Any = unknown
加法
scala> c +=("gender"->"male")
res17: c.type =Map(age ->40, name -> ruoze, gender -> male)
scala> c
res18: scala.collection.mutable.HashMap[String,Any]=Map(age ->40, name -> ruoze, gender -> male)
减法,只要key就行
scala> c -=("name")
res19: c.type =Map(age ->40, gender -> male)
scala> c
res20: scala.collection.mutable.HashMap[String,Any]=Map(age ->40, gender -> male)
1.定长的Mapscala> val a = Map("name"->"ruoze","age"->30)a: scala.collection.immutable.Map[String,Any] = Map(name -> ruoze, age -> 30)查询scala> a("name")res0: Any = ruozescala> a...