定义:列表是scala中最重要的,也是最常用的一种数据结构。他存储的数据特点是:有序可重复。在scala中,列表分为两种,即不可变列表和可变列表。
列表也分两种,可变列表和不可变列表。不可变列表的元素和长度均不可变。
// scala中默认使用的列表都是不可变列表(List),使用可变列表需要导包
import scala.collection.mutable.ListBuffer
// 创建空可变列表
val lst1 = ListBuffer[元素类型]()
// 定义方式1:通过小括号直接初始化
val lst = List(1, 2, 3, 4)
// 定义方式2:通过Nil创建一个空列表
val lst2 = Nil
// 定义方式3:使用 :: 方法实现,最后添加一个Nil
val lst3 = 1::2::3::4::Nil
可变列表常用操作:
- 索引,如
lst(1)
; - 修改元素值:
lst(1) = 5
; - 往列表添加单个元素:
+=
, 还可以用:+
1; - 往列表中追加一个列表,
++=
; - 删除列表中的某个元素,
-=
; - 以列表的形式删除列表中的多个元素,
--=
; -
toList
,将可变列表(ListBuffer)转换为不可变列表; -
to[ListBuffer]
,不可变List转为可变List; -
toArray
,将可变列表(List)转换为不可变列表;
列表常用操作
方法 | 功能 |
---|---|
isEmpty | 判断列表是否为空 |
++ | 拼接两个列表,返回一个新的列表 |
head | 获取列表的首个元素 |
tail | 获取列表首个元素之后的所有元素 |
reverse | 对列表进行反转 |
take | 获取列表中的前缀元素(具体个数可以自己定义) |
drop | 获取列表中的后缀元素(具体个数可以自己定义) |
flatten | 对列表进行扁平化操作,返回一个新的列表 |
zip | 对列表进行拉链操作,将两个列表合成一个新的列表 |
unzip | 对列表执行拉开操作,即将一个列表拆解成两个列表 |
toString | 将列表转换成其对应的默认字符串形式 |
mkString | 将列表转换成其对应的置顶字符串形式 |
union | 获取两个列表的并集元素,并返回一个新的列表 |
intersect | 返回两个列表的交集元素,并返回一个列表 |
diff | 返回两个列表的差集元素,并返回一个新的列表 |
distinct | 列表元素去重 |
网友评论