掌握列表(List)的增、查操作
Scala 中的 List 可以存放数据,它是不可变的,属于序列 Seq
操作
添加元素的操作有两种方式
- “:+ / +:”:
- 冒号一侧是列表
- 加号一侧是具体数值
- 说明:数值在后添加到列表末尾,否则添加到列表开头
“:: / :::”
- 双冒号表示将左边的内容添加到最右边的集合中
- 三个冒号表示左侧必须是一个集合,将其中的每个元素加入到最右边的集合中
说明:最右边必须是一个集合,而且要按顺序依次存放
object ListDemo {
def main(args: Array[String]): Unit = {
val list1 = List("hi", 2, 3)
println(list1 + ", list1(0)=" + list1(0))
// 空列表
val list2: List[Any] = Nil
println(list2)
// 通过 “:+ / +:” 向 list2 中追加数据(本身没有发生变化)
val list3 = list2 :+ 4
val list4 = "hello" +: list3
println(list2, list3, list4)
// “:: / :::” 符号的使用
val list5 = 99 :: list1 ::: 100 :: list2 :: list4
println(list5)
}
}
✍ 运行结果
List(hi, 2, 3), list1(0)=hi
List()
(List(),List(4),List(hello, 4))
List(99, hi, 2, 3, 100, List(), hello, 4)
📝 详细说明
- List 是不可变集合,不能修改列表中的元素值
- List 在 scala 包对象中声明,所以不用引入其他包
- 如果想要声明一个空列表对象,可以使用 Nil 对象,它也在 scala 包对象中声明了
向列表中添加元素,不会改变原来的对象,而是返回一个新的列表对象、
ListBuffer
ListBuffer 是可变集合,可以添加、删除元素,它属于序列 Seq
import scala.collection.mutable.ListBuffer
val lb1 = ListBuffer[Int](1, 2)
lb1.remove(0)
lb1 += 10
lb1.insert(0, 11)
lb1.append(12)
println(lb1)
val lb2 = new ListBuffer[Int]
println(lb2)
lb2 ++= lb1
val lb3 = lb2 :+ 99
println(lb2, lb3)
✍ 运行结果
ListBuffer(11, 2, 10, 12)
ListBuffer()
(ListBuffer(11, 2, 10, 12),ListBuffer(11, 2, 10, 12, 99))