Scala小白初学List

47 阅读2分钟

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

链表结构:

image.png

不可 List:

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

可变 List : ListBuffer

import scala.collection.mutable.ListBuffer

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

package list

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

image.png

常见操作

添加元素

  • 在尾部添加

+=

  • 在头部添加

prepend

  • 在指定位置添加

insert

package list

/**
 * 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在列表指定位置添加
    list2.insert(1,"湖南")
    println(list2)
  }
}

image.png

删除元素

-=

判断某个元素是否存在

contains

合并列表

++

遍历

for、foreach

package list

/**
 * list: 有序, 列表
 * 1.可变List
 * 2.不可变的List(在每个Scala文件中,默认可以直接使用)
 *
 * 常见操作
 * 1.添加元素
 *  1.1在尾部添加
 *  1.2在头部添加
 *  1.3在指定位置添加
 *
 * 2.删除元素
 *  -=
 * 3.判断某个元素是否存在
 *  contains
 * 4.合并列表
 *  ++
 * 5.遍历
 *  for、foreach
 */
object list02 {
  def main(args: Array[String]): Unit = {
    // 可变列表
    val list2 = scala.collection.mutable.ListBuffer("山西省", "湖北省")
    //1.1在列表元素尾部添加
    list2 += "河南省"
    //1.2在列表元素头部添加
    list2.prepend("潜江")
    //1.3在列表指定位置添加
    list2.insert(1,"湖南")
    //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、foreach
    for(ele <- list2){
      println(ele)
    }
    list2.foreach(ele => {
      println(ele)
    })
    println(list2)
    println(list5)
  }
}