掌握列表(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] = Nilprintln(list2)// 通过 “:+ / +:” 向 list2 中追加数据(本身没有发生变化)val list3 = list2 :+ 4val list4 = "hello" +: list3println(list2, list3, list4)// “:: / :::” 符号的使用val list5 = 99 :: list1 ::: 100 :: list2 :: list4println(list5)}}
✍ 运行结果
List(hi, 2, 3), list1(0)=hiList()(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.ListBufferval lb1 = ListBuffer[Int](1, 2)lb1.remove(0)lb1 += 10lb1.insert(0, 11)lb1.append(12)println(lb1)val lb2 = new ListBuffer[Int]println(lb2)lb2 ++= lb1val lb3 = lb2 :+ 99println(lb2, lb3)
✍ 运行结果
ListBuffer(11, 2, 10, 12)ListBuffer()(ListBuffer(11, 2, 10, 12),ListBuffer(11, 2, 10, 12, 99))
