scala-基础-映射(1)
//映射(1)-构建,获取,更新,迭代,反转,映射(可变与不可变 互换) class Demo1 extends TestCase { //构建与获取 def test_create_^^(){ //构建-不可变Map(映射),值不能改变 val mapa = Map("001"->10,"002"->20,"CINDY"->30) //mapa("001") = 2 //构建可变Map(映射) val mapb = scala.collection.mutable.Map("001"->10,"002"->20,"CINDY"->30) mapb("001") = 22 //构建空映射 val mapc = new scala.collection.mutable.HashMap[String,Int] mapc.+=("002"->2) //构建映射对偶的另一种方式 mapc.+=(("12",15)) //获取映射值 val v1 = mapc ("12") //方式一 val v2 = mapc get("12") //方式二 //加入映射中不包含请求的键会抛出异常 //val v3 = mapc ("012") //检测映射中是否包含某个键通过 contains val b = mapc contains("012") val v3 = if (mapc contains("012")) mapc("012") else 0 //简略写法 val v4 = mapc getOrElse("012", 21) println(v4) } //更新 def test_update_&&(){ val mapc = new scala.collection.mutable.HashMap[String,Int] //添加(单个对偶,多个对偶) mapc.+=("002"->2) mapc.+=(("000",-2),"001"->1) //更新键对应值,加入map集合中有该值,则重新赋值,没有的话则属于新增动作 mapc("002") = 21 mapc("0001") = 101 //移除 mapc remove "000" mapc -= "000" } //迭代映射,反转 def test_foreach_&&(){ val mapc = new scala.collection.mutable.HashMap[String,Int] mapc += ("JACK"->32,("lucy",21),"Mark"->18) for((k,v)<-mapc) println(k+" " +v) //(k,v) 泛型元组 for(k <- mapc.keySet) println(k+" "+mapc(k)) for(v <- mapc.values) println(v) val mapa = for((k,v) <- mapc) yield (v,k) val mapb = for((k,v) <- mapc if v>15) yield (v,k) } //映射(可变与不可变 互换) //不可变映射可通过 + 操作符返回一个新的不可变映射;不可变映射可通过 - 操作符返回一个新的不可变映射; def test_trunt_%%(){ val ma = Map("0"->1) val mb = ma + ("0"->10) val mc = mb -("0") } }