• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
戈瑾
博客园    首页    新随笔    联系   管理    订阅  订阅
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等方法的使用与数组类似

posted on 2022-01-06 23:48  戈瑾  阅读(660)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3