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

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,列表,scala)