scala中list定义与常用方法

24 阅读2分钟

一:List的定义和介绍

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

List 创建格式

不可变List:

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

可变 List:ListBuffer

import scala.collection.mutable.ListBuffer

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

package list

object list1 {
  def main(args: Array[String]): Unit = {
    //mutable.ListBuffer:可变
    val list1 = scala.collection.mutable.ListBuffer(1,2,3)
    list1 += 4
    println(list1)
    //immutable.List:不可变
    val list2 = scala.collection.immutable.List(1,2,3)
    //list2 += 4:对于不可变List添加数据会报错
  }
}

二:list的常用方法

直接使用list += * 后会在list尾部加入元素

在头部插入使用prepend方法:

在中间插入使用insert方法,list.insert(*:插入的位置,从0开始算, *:插入的元素)

package list

object list1 {
  def main(args: Array[String]): Unit = {
    //mutable.ListBuffer:可变
    val list1 = scala.collection.mutable.ListBuffer(1,2,3)
    list1 += 4
    println(list1)
    //immutable.List:不可变
    val list2 = scala.collection.immutable.List(1,2,3)
    //list2 += 4:对于不可变List添加数据会报错
    //在头部插入使用prepend方法:
    list1.prepend(0)
    //在中间插入使用insert方法,list.insert(*:插入的位置,从0开始算, *:插入的元素)
    list1.insert(3,5)
    println(list1)
  }
}

删除元素:list -= *

删除指定位置的元素:list.remove()

检查元素是否存在 if(list1.contains(l1)){}

合并: list1 ++ list2

遍历:同Map一样:通过for循环或list.foreach

package list

object list1 {
  def main(args: Array[String]): Unit = {
    //mutable.ListBuffer:可变
    val list1 = scala.collection.mutable.ListBuffer(1,2,3)
    list1 += 4
    println(list1)
    //immutable.List:不可变
    val list2 = scala.collection.immutable.List(1,2,3)
    //list2 += 4:对于不可变List添加数据会报错
    //在头部插入使用prepend方法:
    list1.prepend(0)
    //在中间插入使用insert方法,list.insert(*:插入的位置,从0开始算, *:插入的元素)
    list1.insert(3,5)
    println(list1)
    //删除元素:list -= *
    list1 -= 5
    println(list1)
    //删除指定位置的元素:list.remove()
    list1.remove(0)
    println(list1)
    //检查元素是否存在
    val l1 = 3
    if(list1.contains(l1)){
      println(s"${l1}存在于list1中")
    }else{
      println(s"${l1}不存在于list1中")
    }
    //合并: ++
    val list3 = scala.collection.mutable.ListBuffer(1,2,3,4,5)
    val list4 = scala.collection.mutable.ListBuffer(1,3,5,7,9)
    val list5 = list3 ++ list4
    println(list5)
    //遍历:
    for(l1 <- list5){
      println(s"${l1}")
    }
    list5.foreach(l1 => {
      println(s"${l1}")
    })
  }
}

输出结果: image.png