欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Scala中的List有序可重复集合:列表List基本使用

程序员文章站 2022-06-09 21:59:58
...
package com.fuyun.bigdata.scala.collection

import scala.collection.mutable.ListBuffer

/**
  *  List有序可重复集合:列表List基本使用
  */
object ListDemo {

  def main(args: Array[String]): Unit = {
    // 创建空列表
    val list = Nil
    println(s"list : ${list.mkString(", ")}")
    // 创建不可变的列表list
    val list1 = List(3, 6, 8, 9)
    /*
     * 在scala中list的组成
     *   list = head(element) + tail(是一个list,除了头部元素以外的其他组成的list集合)
     */
    println(s"list1 head is :${list1.head}")
    println(s"list1 tail is :${list1.tail}")
    println(s"list element top three is:${list1.sorted.reverse.take(3)}")
    // TODO: 如果list只有一个元素,head为元素,tail为空集合 List()/Nil
    val list2 = List(66)
    println(s"list2 head is :${list2.head}")
    println(s"list2 tail is :${list2.tail}") // 空的集合,可使用Nil表示

    // list的第二种创建方式
    /*
     * TODO -> 1 :: List(2, 3) = List(2, 3).::(1) = List(1, 2, 3)
     *
     */
    /*
     * 下面的运算从右到左
     * 首先是头部为1,尾部为空列表的列表
     * 然后将这个列表作为尾部,头部为2组成新列表
     * 最后结果为List(2, 1)
     */
    val list3 = 2::1::Nil
    println(list3.mkString(", "))

    /*
     * 可变的list:ListBuffer,类似可变的ArrayBuffer
     * 记得导包
     */
    import scala.collection.mutable
    // 创建ListBuffer实例对象
    val listBuffer = ListBuffer[Int]()
    // 向可变的listBuffer中添加
    listBuffer += 1
    listBuffer += 3

    // ++=方法用于添加列表中每个元素
    listBuffer ++= List(6, 8)
    // 添加元组
    listBuffer += (5, 9, 6)

    // 同样,如果对可变的list集合进行操作,建议将其转换为不可变的list列表
    val list4 = listBuffer.toList
    println(list4.mkString("< ", ", ", " >"))

    // 判断是否为空
    println(list4.isEmpty)
    // 判断某个元素是否在列表中
    println(list4.contains(6))
    // 以反序方式从数组末尾到数组头遍历元素
    println(list4.reverse(3)) // 从末尾数第4个元素
    println(list4.reverse) // 反序输出列表
    // 对列表进行去重
    println(list4.distinct)
    // 第1到第3个元素
    println(list4.slice(0, 3))
  }

}

运行结果:
list :
list1 head is :3
list1 tail is :List(6, 8, 9)
list element top three is:List(9, 8, 6)
list2 head is :66
list2 tail is :List()
2, 1
< 1, 3, 6, 8, 5, 9, 6 >
false
true
8
List(6, 9, 5, 8, 6, 3, 1)
List(1, 3, 6, 8, 5, 9)
List(1, 3, 6)

Process finished with exit code 0

相关标签: List 列表