Scala中的List

31 阅读3分钟

内容:

1.List的定义;

2.可变list的常见用法;

3.不可变list的常见用法。

List的定义和介绍

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

[展示]List 创建格式

不可 变 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 = scala.collection.immutable.List("湖北省","陕西省")
   println(list1)
    //2,可变的
   val list2 = scala.collection.mutable.ListBuffer("湖北省","陕西省")
    list2 += "重庆市"
    println(list2)
  }
}

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

可变List的常用方法

1. 添加元素

如果我们要给刚才创建的存储名山的可变 List 中添加一个新的名山,怎么 做呢?

对于可变 List,我们可以使用+=操作符或者append方法来添加元素。

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

 //2,可变列表
   val list2 = scala.collection.mutable.ListBuffer("湖北省","陕西省")
    //在尾部加元素
    list2 += "重庆市"
    //在头部加元素
    list2.prepend("潜江市")
    //在指定位置加元素
    list2.insert(1,"武汉市")
    println(list2)

2. 删除元素

删除的方法有两种:删除元素,删除某个位置上的元素。 编码演示效果

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

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

3. 元素是否存在

如果我们想知道刚才创建的名山列表中是否包含某个特定的名山,在 List 中怎么操作呢?

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

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

val isContained: Boolean = listName.contains(element)
 //3,判断某个元素是否存在
    if (list2.contains("潜江市")){
      println("潜江市在列表中存在")
    }else{
      println("潜江市在列表中不存在")
    }

4. 合并列表

如果我们有两份列表,如何进行合并操作而得到一个新的列表呢?

我们可以使用 ++ 方法来合并。

 //4,合并列表,列表中允许重复的元素存在
    val list3 = scala.collection.mutable.ListBuffer("湖北省","深圳市")
    val list4 = scala.collection.mutable.ListBuffer("湖北省","杭州市")
    val list5 = list3 ++ list4

5. List的遍历

如果我们想查看所有的名山,也就是遍历 List,怎么做呢?

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

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

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

不可变list的常见用法

编码演示效果

package List

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