map
Map(映射)是一种可迭代的键值对(key/value)结构。
Map 中的键都是唯一的。所有的值都可以通过键来获取。
Map 有两种类型,可变与不可变 ,默认情况下 Scala 使用不可变 Map。
使用可变集合,你需要显式的引入 import scala.collection.mutable.Map
package chapter03 object test03 { def main(args:Array[String]):Unit={ //TODO Map集合:K-V val map:Map[String,Int]=Map("a"->1,"b"->2,"c"->3) //添加数据 val map1:Map[String,Int]=map+("d"->4) val map2:Map[String,Int]=map+("b"->4) //key存在,跟新value println(map1.mkString(",")) //a -> 1,b -> 2,c -> 3,d -> 4 println(map2.mkString(",")) //a -> 1,b -> 4,c -> 3 //删除数据 var map3:Map[String,Int]= map-("b") println(map3.mkString(",")) //a -> 1,c -> var map4:Map[String,Int]= map-("e")//key不存在,不做处理 println(map3.mkString(",")) //a -> 1,c -> //修改数据 var map5:Map[String,Int]=map.updated("a",9) println(map5.mkString(",")) //a -> 9,b -> 2,c -> 3 //取数据 //scala为防止集合出现空指针问题,提供了一个特殊的类Option,有两个特殊的对象,Some,None //如果确实没有获取到数据,为了不出现异常,Option类提供了有默认值的方法 //println(map.get("b")) println(map.get("f").getOrElse(0)) //0为默认值 //TODO 可变集合 import scala.collection.mutable var mmap:mutable.Map[String,Int]=mutable.Map("aa"->11,"bb"->22,"cc"->33) } }
package spark2021 import scala.collection.mutable.Map object map_Test { def main(args: Array[String]): Unit = { var a:Map[String,Int]=Map("k1"->1,"k2"->2)//初始化构造函数 a += ("k3"->3)//添加元素 println(a) a += ("k1"->100)//已经存在添加元素会覆盖 println(a) // Map(k2 -> 2, k1 -> 1, k3 -> 3) // Map(k2 -> 2, k1 -> 100, k3 -> 3) println("****************") var b:Map[String,Int]=Map("k1"->1,"k2"->2)//初始化构造函数 var b1= b + ("k3"->3)//添加元素 println(b) println(b1) var b3= b + ("k1"->100)//已经存在添加元素会覆盖 println(b) println(b3) // Map(k2 -> 2, k1 -> 1) // Map(k2 -> 2, k1 -> 1, k3 -> 3) // Map(k2 -> 2, k1 -> 1) // Map(k2 -> 2, k1 -> 100) println("****************") var c:Map[String,Int]=Map("k1"->1,"k2"->2)//初始化构造函数 var c1= c ++ Map("k3"->3)//添加元素 println(c) println(c1) var c3= c ++ Map("k1"->100)//已经存在添加元素会覆盖 println(c) println(c3) // Map(k2 -> 2, k1 -> 1) // Map(k2 -> 2, k1 -> 1, k3 -> 3) // Map(k2 -> 2, k1 -> 1) // Map(k2 -> 2, k1 -> 100) } }
posted on 2019-10-10 18:05 happygril3 阅读(296) 评论(0) 收藏 举报
浙公网安备 33010602011771号