scala map tuple
默认是map 是不可变map immutable.Map
scala> val a= Map("a"-> 1 ,"b"->2)
a: scala.collection.immutable.Map[String,Int] = Map(a -> 1, b -> 2)
----------------------------------
可以指定创建 可变map
scala> val b = scala.collection.mutable.Map("c"->3,"d"->4)
b: scala.collection.mutable.Map[String,Int] = Map(d -> 4, c -> 3)
----------------------------------
map的合并
scala> val b = scala.collection.mutable.Map("c"->3,"d"->4)
b: scala.collection.mutable.Map[String,Int] = Map(d -> 4, c -> 3)
scala>
scala> val c = scala.collection.mutable.Map("e"->3,"f"->4)
c: scala.collection.mutable.Map[String,Int] = Map(e -> 3, f -> 4)
scala> b ++= c
res0: b.type = Map(e -> 3, d -> 4, c -> 3, f -> 4)
----------------------------------
通过元组创建:
scala> val g = Map(("a",1),("b",2),("c",3))
g: scala.collection.immutable.Map[String,Int] = Map(a -> 1, b -> 2, c -> 3)
----------------------------------
获取 值
scala> val x = g("a")
x: Int = 1
----------------------------------
判断是否存在key
scala> g.contains("a")
res2: Boolean = true
----------------------------------
scala> g.getOrElse("d",0)
res3: Int = 0
----------------------------------
遍历
scala> for((k,v)<-g) println(k+"->"+v)
a->1
b->2
c->3
遍历key
scala> for(k <- g.keySet) println(k)
a
b
c
遍历 value
scala> for(v <- g.values) println(v)
1
2
3
----------------------------------
SortedMap 自动安装key排序
scala> val sm = scala.collection.immutable.Map("d"->1,"a"->2,"e"->3)
sm: scala.collection.immutable.Map[String,Int] = Map(d -> 1, a -> 2, e -> 3)
scala> val sm = scala.collection.immutable.SortedMap("d"->1,"a"->2,"e"->3)
sm: scala.collection.immutable.SortedMap[String,Int] = Map(a -> 2, d -> 1, e -> 3)
----------------------------------
自动维护插入顺序的 LinkedHashMap
scala> val h = scala.collection.mutable.LinkedHashMap[String,Int]()
h: scala.collection.mutable.LinkedHashMap[String,Int] = Map()
scala> h +=("x"->1)
res14: h.type = Map(x -> 1)
scala> h +=("y"->2)
res15: h.type = Map(x -> 1, y -> 2)
scala> h +=("z"->3)
res16: h.type = Map(x -> 1, y -> 2, z -> 3)
----------------------------------
tuple 元组
scala> var t = ("name","tom")
t: (String, String) = (name,tom)
scala> var t2 = ("name","tom","age")
t2: (String, String, String) = (name,tom,age)
----------------------------------
zip操作
scala> val a = Array("a","b","c")
a: Array[String] = Array(a, b, c)
scala> val b = Array("1","2","3")
b: Array[String] = Array(1, 2, 3)
scala> var t = a.zip(b)
t: Array[(String, String)] = Array((a,1), (b,2), (c,3))
----------------------------------
访问 tuple 元素 t._1
scala> var t = ("name","tom")
t: (String, String) = (name,tom)
scala> t._1
res20: String = name
scala> t._2
res21: String = tom
----------------------------------