Scala中的List

23 阅读2分钟

(一)List的定义和介绍

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

List 创建格式

  • 不可变List:

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

  • 可变 List:ListBuffer

import scala.collection.mutable.ListBuffer

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

/*

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)
  }

}

运行结果:

List(湖北省, 浙江省)
ListBuffer(湖北省, 浙江省, 北京市)

(二)可变List的常用方法

1.添加元素

对于可变 List

1.在尾部添加。+=

2.在头部添加。prepend

3.在指定位置添加。insert在指定的下标位置添加元素

  • 添加元素到可变 List 的格式 (+= 操作符): listBuffer += element

  • 添加元素到可变 List 的格式 (append 方法): listBuffer.append(element)

2. 删除元素

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

l1 -= 150 // 删除指定的元素  
l1.remove(0) // 删除指定位置上的元素

3.元素是否存在

使用contains方法来查询 List 中是否包含某个元素。返回值是一个布尔类型

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

val isContained: Boolean = listName.contains(element)

4.合并列表

使用 ++ 方法来合并

5. List的遍历

使用for循环或者foreach方法来遍历 List。

  • 使用 for 循环遍历 List 的格式:
for (element <- listName) {

  // 操作,如打印 element

}
  • 使用 foreach 方法遍历 List 的格式:
listName.foreach { element =>

  // 操作,如打印 element

}

总代码:

/*
* list:有序,链表
  1.可变List
  2.不可变的List(在每个scala文件中 默认可以直接使用)
*
*  常见操作
* 1.添加元素
*   1-1 在尾部添加。+=
*   1-2 在头部添加。prepend
*   1-3 在指定位置添加。insert在指定的下标位置添加元素
*
*
*
* */
object list01 {
  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.合并列表 列表中允许重复元素存在
    val list3 = scala.collection.mutable.ListBuffer("湖北省","浙江省")
    val list4 = scala.collection.mutable.ListBuffer("湖北省","浙江省")
    val list5 = list3 ++ list4

    //5.偏历
    for(ele <- list2){
      println(ele)
    }
    list2.foreach(ele => {
      println(ele)
    })

  }

}

//运行结果:
ListBuffer(潜江, 湖南, 湖北省, 浙江省, 北京市)
潜江在列表中存在
潜江
湖南
浙江省
北京市
潜江
湖南
浙江省
北京市

进程已结束,退出代码为 0