Scala 集合框架

scala中的集合分为三类:Seq(序列),Set(集),Map(映射),三者都扩展自Iterable.

每一类集合,都可以分为两个种类。

不可变集合, scala.collection.immutable._   默认使用,不需要导包.

可变集合, scala.collection.mutable._          需要手动导入包,才能使用.

分别属于不同的包。

Array 也是一种特殊的集合.

Tuple元祖 , 元祖没有可变和不可变之分.

一.元组

一组元素的集合.

创建:

直接用括号: val tp = (1,2.5,true,”str”)

通过new实现:val tp2 = new Tuple2(1,5)   // 2表示元组元素的个数

 取值: 通过角标 ,从1开始

tp2._1

 

对偶元组:

特殊的元组,只有2个元素。Map 集合中存储的元素,就是对偶元组。

val tp = (“a”,18)

交换元素: swap

 元组的元素最多可用有22个。

元组的本质就是一个样例类(特殊的类)

二.数组

不可变数组  Array                     长度不可变,但是内容可变

可变数组      ArrayBuffer           长度和内容都可变

a.不可变数组:

指定数组类型,并赋值,类型可省略,编译器会自动推导。

val arr1 = Array[Int](1,2,3,4,5)

通过new关键字创建的数组,必须指定数组的类型和长度

val arr2 = new Array[Int](10)

取值:

通过角标,从0 开始   arr(0)

 如果对不可变数组,添加了元素,实际上是生成了一个新的数组。

 

b.可变数组:

scala中的导包,可以在需要的任意地方导入。

导包:

 创建可变数组:

可变数组的增删改查操作:

修改:

 增加:

+=  对应元素

++= 对应集合

insert(n:Int,x:Int*)  在指定位置添加元素

删除: 

-=  操作元素

--=    操作集合

remove(n:Int) 指定位置的元素

remove(n:Int,len:Int) 从指定位置开始,删除指定个数的元素

可变数组和不可变数组的转换:

toArray 其他的集合  --à  Array

toBuffer 其他的集合 -à  ArrayBuffer

数组上的常用方法:

max       min        sum     sorted    sortWith      sortBy

数组的拼接:

存储一个元祖类型:

 

拉链一一对应,数据类型是对偶元组

zipWithIndnx自动加索引,索引从0开始

拉链操作:

 zipWithIndnx操作:

 三.List

不可变的List       List                      长度不可变,内容也不可变

可变的List           ListBuffer            长度内容都可变,必须导包

​​​​​​​a.不可变的List

val lst1 = List[类型](元素)

val lst2 = 9::2::Nil

:: 和 Nil 是组成List的两个单位。

::   这是一个方法,属于List上的方法。  右连接

Nil   空的List

(9::(6:(3::Nil) ))

 对不可变的集合元素添加,生成新的集合:

 b.​​​​​​​可变List

+= ++= insert

-= --=  remove

判空:

把List集合理解为两个部分:

头元素  +  尾列表

List的拼接:

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值