Scala 集合
Scala集合部分包括List Set Tuple Map
集合的操作需要掌握增、删、迭代的方法
该部分为集合中Map的说明
Map
Scala Map
创建不可修改的Map:
1 2
| scala> val a = Map("a"->10,"b"->20) a: scala.collection.immutable.Map[String,Int] = Map(a -> 10, b -> 20)
|
取值方法:
1 2
| scala> a("a") res1: Int = 10
|
创建可修改的Map:
1 2
| scala> val b = scala.collection.mutable.Map("a"->10,"b"->20) b: scala.collection.mutable.Map[String,Int] = Map(b -> 20, a -> 10)
|
修改方法:
1 2 3 4
| scala> b("a") = 30
scala> b res3: scala.collection.mutable.Map[String,Int] = Map(b -> 20, a -> 30)
|
为了避免key不存在报错,使用以下方法获取value值:
1 2
| scala> b.getOrElse("c",30) res0: Int = 30
|
增加key-value:
1 2
| scala> b += ("d"->40) res1: b.type = Map(b -> 20, d -> 40, a -> 10)
|
减少key-value 只需要减少key就可以了:
1 2
| scala> b -= "b" res5: b.type = Map(d -> 40, a -> 10)
|
确认key是否存在:
1 2
| scala> b.contains("a") res7: Boolean = true
|
Map的遍历:
1
| val c = scala.collection.mutable.Map("a"->10,"b"->20)
|
遍历value1:
1 2 3
| for ((k, v) <- c){ println(k + "-->" + v) }
|
结果:
遍历value2:
1 2 3
| for (k <- c.keySet){ println(k + "-->" + c.get(k)) }
|
结果:
1 2
| b-->Some(20) a-->Some(10)
|
获取所有key:
1 2 3
| for (v <- c.values) { println(v) }
|
结果:
some的解释:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| scala> val a = Map(1 -> 2) a: scala.collection.immutable.Map[Int,Int] = Map(1 -> 2)
scala> a.get(1) res10: Option[Int] = Some(2)
scala> a.get(2) res11: Option[Int] = None
scala> a.get(1).get res12: Int = 2
scala> a.get(2).getOrElse(99) res2: Int = 99
|