掌握列表(List)的增、查操作
Scala 中的 List 可以存放数据,它是不可变的,属于序列 Seq

操作

添加元素的操作有两种方式

  1. :+ / +:”:
    1. 冒号一侧是列表
    2. 加号一侧是具体数值
    3. 说明:数值在后添加到列表末尾,否则添加到列表开头
  2. :: / :::

    1. 双冒号表示将左边的内容添加到最右边的集合中
    2. 三个冒号表示左侧必须是一个集合,将其中的每个元素加入到最右边的集合中
    3. 说明:最右边必须是一个集合,而且要按顺序依次存放

      1. object ListDemo {
      2. def main(args: Array[String]): Unit = {
      3. val list1 = List("hi", 2, 3)
      4. println(list1 + ", list1(0)=" + list1(0))
      5. // 空列表
      6. val list2: List[Any] = Nil
      7. println(list2)
      8. // 通过 “:+ / +:” 向 list2 中追加数据(本身没有发生变化)
      9. val list3 = list2 :+ 4
      10. val list4 = "hello" +: list3
      11. println(list2, list3, list4)
      12. // “:: / :::” 符号的使用
      13. val list5 = 99 :: list1 ::: 100 :: list2 :: list4
      14. println(list5)
      15. }
      16. }

      ✍ 运行结果

      1. List(hi, 2, 3), list1(0)=hi
      2. List()
      3. (List(),List(4),List(hello, 4))
      4. List(99, hi, 2, 3, 100, List(), hello, 4)

      📝 详细说明

  • List 是不可变集合,不能修改列表中的元素值
  • List 在 scala 包对象中声明,所以不用引入其他包
  • 如果想要声明一个空列表对象,可以使用 Nil 对象,它也在 scala 包对象中声明了
  • 向列表中添加元素,不会改变原来的对象,而是返回一个新的列表对象、

    ListBuffer

    ListBuffer 是可变集合,可以添加、删除元素,它属于序列 Seq

    1. import scala.collection.mutable.ListBuffer
    2. val lb1 = ListBuffer[Int](1, 2)
    3. lb1.remove(0)
    4. lb1 += 10
    5. lb1.insert(0, 11)
    6. lb1.append(12)
    7. println(lb1)
    8. val lb2 = new ListBuffer[Int]
    9. println(lb2)
    10. lb2 ++= lb1
    11. val lb3 = lb2 :+ 99
    12. println(lb2, lb3)

    ✍ 运行结果

    1. ListBuffer(11, 2, 10, 12)
    2. ListBuffer()
    3. (ListBuffer(11, 2, 10, 12),ListBuffer(11, 2, 10, 12, 99))