package map
/*
* Map: 映射
* 键值对, 键不能有相同的!
* (key,value)
*
* 鄂 → 湖北省
* 湘 → 湖南省
* 赣 → 江西省
*
* 01 → xxx
* 02 → yyy
*
*/
object Base74 {
def main(args: Array[String]): Unit = {
val map1 = Map( "alice" -> 90, "bob" -> 80, "bob" -> 100 )
// bob这个键有重复,只保留一个
println(map1)
}
}
输出结果
1. 序列(Seq)
- List:不可变链表,常用操作如
head(取头元素)、tail(取尾链表)、::(添加头元素)。例:val list = List(1,2,3) - Vector:不可变索引序列,随机访问效率高(比 List 更适合频繁读取中间元素)。例:
val vec = Vector(1,2,3) - Array:定长数组(底层是 Java 数组),可变。例:
val arr = Array(1,2,3); arr(0) = 4 - ArrayBuffer:可变动态数组(类似 Java 的 ArrayList),需导入
scala.collection.mutable.ArrayBuffer。例:val buf = ArrayBuffer(1,2,3); buf += 4
2. 集(Set)
- 不可变 Set:默认,元素唯一,无重复。例:
val set = Set(1,2,2,3)(实际存储1,2,3) - 可变 Set:需导入
scala.collection.mutable.Set,支持添加 / 删除元素。例:val mSet = mutable.Set(1,2); mSet += 3
3. 映射(Map)
- 不可变 Map:默认,键唯一,重复键会保留最后一个值(如你代码中的示例)。例:
val map = Map("a"->1, "b"->2) - 可变 Map:需导入
scala.collection.mutable.Map,支持修改键值对。例:val mMap = mutable.Map("a"->1); mMap("a") = 2
4. 元组(Tuple)
- 可以存储不同类型的元素,长度固定,通过索引(从
_1开始)访问。例:val t = (1, "hello", 3.14); println(t._2)(输出hello)