29 scala中的List

37 阅读2分钟

(一)List的定义和介绍List 是一种有序的数据结构,它是一种链表结构。

List 创建格式

不可变List:

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

可变 List : ListBuffer

import scala.collection.mutable.ListBuffer

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

注意:不可变 List 创建后元素不能修改,而可变 List 可以修改。

package list

/*
* list: 有序, 链表
* 可变与不可变
*/
object List01 {
  def main(args: Array[String]): Unit = {
    // 可变的
    val list1 = scala.collection.mutable.ListBuffer(1,2,3)
    list1 += 4
    println(list1)

    // 不可变 不能直接修改原来的数据
    val list2 = scala.collection.immutable.List(1,2,3)
    // list2 += 4  += 会报错
  }
}

image.png

(二)可变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。

使用 for 循环遍历 List 的格式:

for (element <- listName) {

  // 操作,如打印 element

}

使用 foreach 方法遍历 List 的格式:

listName.foreach { element =>

  // 操作,如打印 element

}

package list

/*
* list: 有序, 链表
* 可变与不可变
* 常用方法
* 1. 添加
* 1.1 在尾部添加 +=
* 1.2 在头部添加 prepend
* 1.3 在指定位置添加 insert
*/
object list02 {
  def main(args: Array[String]): Unit = {
    // 初始化可变ListBuffer
    val list1 = scala.collection.mutable.ListBuffer(1,1,2,3)

    // 1.1 在尾部添加元素
    list1 += 4
    // 1.2 在头部添加元素
    list1.prepend(-1)
    //list1.insert(-1, 1, 2, 5, 3, 4)

    list1.insert(3, 5)
    //3:下标,从0开始
    //5:就是要插入的元素

    // 2.1 删除指定值的元素(删除第一个遇到的1)
    list1 -= 1
    // 2.2 删除指定下标的元素(删除下标0的元素)
    list1.remove(0)
    println(list1)
    // 3. 检查元素是否存在
    val ele = 50
    if(list1.contains(ele)){
      println(s"${ele} 存在")
    } else {
      println(s"${ele} 不存在")
    }

    // 4. 合并 ++
    val list2 = scala.collection.mutable.ListBuffer("潜江", "仙桃")
    val list3 = scala.collection.mutable.ListBuffer("天门")
    val list4 = list2 ++ list3
    println(list4)

    // 5. 遍历
    for(ele <- list4){
      println(s"${ele}")
    }

    list4.foreach(ele => {
      println(s"${ele}")
    })

  }
}

image.png

(三)不可变List的常用方法

1. 添加元素

对于不可变 List,使用appended,或者prepended方法来添加元素。

注意:需要使用新的List来保存结果。

val l2 = l1.appended(4)     // 在尾部添加
val l2 = l1.prepended(-1)   // 在头部添加

2. 合并列表

使用:::方法 或者是 ++ 来合并。