Scala | List

22 阅读2分钟

一、List的定义和介绍

List 是一种有序的数据结构,它是一种链表结构。

不可变 List 创建后元素不能修改,而可变 List 可以修改。
def main(args: Array[String]): Unit = {
  // 不可变的列表
  val list1 = List("湖北","四川","山西","湖北")
  // list += "北京" 错误,不可变列表,不能直接+=
  println(list1)

  // 可变的列表
  val list2 = scala.collection.mutable.ListBuffer("湖北","四川","山西")
  // 可变的列表 可以 +=
  list2 += "北京"
}

二、可变list的常见操作

1.添加(在头部添加,在尾部添加,在指定的位置添加)

2.删除(删除元素,删除某个位置上的元素)

3.判断是否存在

4.合并

5.遍历 list for foreach方法

分解代码:

1.添加(在头部添加,在尾部添加,在指定的位置添加)

 // 1. 添加:在尾部添加
  list1 += "潜江"
  println(list1)
  // 2.添加:在头部添加
  list1.prepend("山西") // 山西 湖北 潜江
  // 3.添加:在指定位置插入
  list1.insert(1,"运城")  // 山西 运城 湖北 潜江

2.删除(删除元素,删除某个位置上的元素)

 // 4. 删除:删除指定元素 只删除找到的这一个
  list1 -= "潜江"
  // 5. 删除某个下标上的元素
  println(list1)
  list1.remove(0)  // 删除列表中的第一个元素 下标为0的元素
  println(list1)

3.判断是否存在

if(list1.contains("潜江")) {
    println("潜江在列表中")
  } else {
    println("潜江不在列表中")
  }

4.合并

 val list2 = scala.collection.mutable.ListBuffer(1,2,3)
  val list3 = scala.collection.mutable.ListBuffer(4,5,6)
  val list4 = list2 ++ list3
  val list5 = list2.concat(list3)
  println(list4)
  println(list5)

5.遍历 list for foreach方法

list1.foreach(ele => {
    println(ele)
  })
  for(ele <- list1) {
    println(ele)
  }
完整代码:
def main(args: Array[String]): Unit = {

  val list1 = scala.collection.mutable.ListBuffer("湖北")

  // 1. 添加:在尾部添加
  list1 += "潜江"
  println(list1)
  // 2.添加:在头部添加
  list1.prepend("山西") // 山西 湖北 潜江
  // 3.添加:在指定位置插入
  list1.insert(1,"运城")  // 山西 运城 湖北 潜江

  // 4. 删除:删除指定元素 只删除找到的这一个
  list1 -= "潜江"
  // 5. 删除某个下标上的元素
  println(list1)
  list1.remove(0)  // 删除列表中的第一个元素 下标为0的元素
  println(list1)

  // 6.判断是否存在
  if(list1.contains("潜江")) {
    println("潜江在列表中")
  } else {
    println("潜江不在列表中")
  }

  // 7.合并
  val list2 = scala.collection.mutable.ListBuffer(1,2,3)
  val list3 = scala.collection.mutable.ListBuffer(4,5,6)
  val list4 = list2 ++ list3
  val list5 = list2.concat(list3)
  println(list4)
  println(list5)

  // 8.遍历 list for foreach方法
  list1.foreach(ele => {
    println(ele)
  })
  for(ele <- list1) {
    println(ele)
  }
}