• spark学习进度6——Scala中的List


    一、List集合

    1、分类

    • mutable 可变——元素个数和值等可以改变(ListBuffer

    • immutable不可变——长度和元素的值都不可变(List

    在scala.collection.mutable/immutable包中,常用的List就是immutable下面的集合。

    2、List集合是一个抽象类不能被实例化,也就是不能使用 new的方式进行创建


    二、不可变List

    1、声明

    (1)val list=List[Int](1,2,3)

    (2)val list=11::22::33::Nil [生成新的List集合]

    :: 是List集合中的拼接方法。证明list集合是全部拼接出来的,所以List集合分为两个部分,头元素+尾列表 Nil代表空列表。

    (3)声明一个空的集合,然后使用::方法往集合中添加值

    1   def main(args: Array[String]): Unit = {
    2     val list=Nil
    3     var a=1::list
    4     var b=2::a
    5     var c=3::b
    6     c.foreach(println)
    7   }

     注意:必须从后往前拼接,拼接完毕生成新的list集合

    2、头元素尾列表

    Scala中List集合有三个基本操作:

    • head 返回列表第一个元素

    • tail 返回一个列表,包含除了第一元素之外的其他元素

    • isEmpty 在列表为空时返回true

    3、连接两个或多个列表

    ::: 运算符

    List.:::() 方法

    List.concat() 方法

        val a=11::22::33::Nil
        val b=11::22::33::Nil
        val c=11::22::33::Nil
        val r=List.concat(a,b,c)
        for (elem <- r) {
          println(elem)
        }

     4、取值

    通过下标取值

     5、常用方法

    List.fill()——创建一个指定重复数量的元素列表

     LIst.reverse——将集合中的元素反转

     排序方法:sorted、sortBy、sortwith


    三、可变ListBuffer

    1、需要导入import scala.collection.mutable.ListBuffer包

    2、声明

    (1)val list=new ListBuffer[Int]( )   括号中不能给值

    (2)val list=ListBuffer(1,2,3) 直接赋值的方式声明

     注意:

    • List不可以使用new创建, ListBuffer可以使用new创建

    • List可以使用::方法创建 , ListBuffer不可以使用 :: 方法创建

    3、常用方法

    +=: 往ListBuffer中添加单个元素

    ++=:将数组或者单个元素进行拼接

    -=: 删除ListBuffer中单个元素

    --=:删除List一个集合或者多个元素

    insert、remove、isEmpty、reverse、max、min、sum、sorted、sortWith、sortBy等方法的使用与数组类似

  • 相关阅读:
    Linux:Day45(下)
    Linux:Day45(上)
    Linux:Day44(下)
    彻底理解JDK异步
    Ribbon是什么?
    RocketMQ学习笔记(一)eclipse版的quickstart
    线性表的遍历
    八皇后问题
    汉诺塔
    servlet的url-pattern规则
  • 原文地址:https://www.cnblogs.com/znjy/p/15773411.html
Copyright © 2020-2023  润新知