Scala中的list

33 阅读2分钟

(一)List的定义和介绍

List 是一种有序的数据结构,它是一种链表结构。 [教师画图介绍链表]

[展示]List 创建格式

不可变List:

val 列表名称 = List(element1, element2,...)

可变 List:ListBuffer

import scala.collection.mutable.ListBuffer

val 列表名称 = ListBuffer[元素类型](element1, element2,...)

(二)可变List的常用方法

1. 添加元素
对于可变 List,我们可以使用+=操作符或者append方法来添加元素。
添加元素到可变 List 的格式 (+= 操作符):listBuffer += element
添加元素到可变 List 的格式 (append 方法):listBuffer.append(element)

2. 删除元素
删除的方法有两种:删除元素,删除某个位置上的元素

3. 元素是否存在
我们可以使用contains方法来查询 List 中是否包含某个元素。

查询 List 元素的格式(contains 方法):

val isContained: Boolean = listName.contains(element)

4. 合并列表
我们可以使用 ++ 方法来合并。

5. List的遍历
我们可以使用for循环或者foreach方法来遍历 List。

package list

object list01 {

  /**
   * list: 有序, 链表
   * 1. 可变list
   * 2. 不可变list (在每个scala文件中, 默认可以直接使用)
   */
  object list01 {
    def main(args: Array[String]): Unit = {
      // 1. 不可变
      val list1 = List("湖北省", "浙江省")
      println(list1)
      // 2 可变
      val list2 = scala.collection.mutable.ListBuffer("湖北省", "浙江省")
      list2 += "北京市"
      println(list2)
    }
  }
}
package list

object list02 {

  /**
   * list: 有序, 链表
   * 1. 可变list
   * 2. 不可变list (在每个scala文件中, 默认可以直接使用)
   *
   * 常见操作
   * 1. 添加元素
   * 1.1 在尾部添加
   * 1.2 在头部添加
   * 1.3 在指定位置添加
   */
  object list02 {
    def main(args: Array[String]): Unit = {
      // 可变列表元素的添加操作
      val list2 = scala.collection.mutable.ListBuffer("湖北省", "浙江省")

      // 1.1 在尾部添加
      list2 += "北京市"
      // 1.2 在头部添加
      list2.prepend("黑龙江")

      // 1.3 在指定位置添加。insert在指定的下标的位置添加元素
      list2.insert(1, "湖南")
      println(list2)
      ```

     

    // 2. 删除
   list2 -= "湖北省"

    // 3. 判断某个元素是否存在
      if(list2.contains("浙江省")){
     println("浙江省在列表中存在")
     } else {
       println("浙江省在列表中不存在")
     }

     // 4. 合并 == Scala中允许重复的元素存在
      val list3 = scala.collection.mutable.ListBuffer("湖北省", "浙江省")
    val list4 = scala.collection.mutable.ListBuffer("湖北省", "浙江省")
      val list5 = list3 ++ list4

     // 5. 遍历 for
    for(ele <- list2) {
      println(ele)
     }

    list2.foreach(ele => {
       println(ele)
     })


    }
  }

}