map

47 阅读1分钟
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)
  }
}

输出结果

image.png

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