一、 概念
-
scala集合体系从数据存储方式上分为三大集合体系
- seq集合体系
- set集合体系
- map集合体系
-
scala集合从集合数据是否可变又分为两种
- 默认为不可变集合:集合每一次操作完成后,原有集合不受影响,而是产生一个新的集合
- 可变集合体系:集合每一次操作完成后,原有集合发生概念,而不是产生一个新的集合
二、scala集合常用体系
1、 数据集合体系
- 不可变数据
- 可变数组
- 多维数组
2、 列表List集合体系
存放有序、可重复的元素
-
不可变列表List
- 遍历
for(i <- start to list.size)
for(item <- list)
list,foreach((item:Int) => {println(item)}) - 取值
- 增加
+:
:+
::
::: - 更新数据 updated
- 删除数据 drop
- 遍历
-
可变列表ListBuffer
- 遍历
- 取值
- 增加
append
insert - 更新数据 updated
- 移除数据 remove
3、 Set集合体系
不可重复,无序的集合
- 不可变Set
- 可变mutable.Set
4、 Map集合体系
5、 特殊的数据类型 Tuple元组
6、 常用属性和函数
foreach 增加的for循环的变种 遍历集合的每一个元素,进行处理 无返回值类型
iterator 迭代器
mkString 将集合元素以指定分隔符拼接成为字符串
contains 判断 集合是否包含某个元素
获取集合的头 list.head
获取集合的尾部元素 list.tail
集合最后的一个元素 list.last
集合元素进行反转 list.reverse
取集合中前3个元素 list.take(3)
取集合的后三个元素 list.takeRight(3)
合并两个集合 list.union(list1)
取两个集合的交集 list.intersect(list1)
取两个集合的差集 list1.diff(list)
集合的拉链操作
将两个集合的元素按照顺序组合成为二元组 二元组的第一个值是第一个集合的某一条数据,二元组的第二条数据是第二个集合与之顺序对应的数据
var list3 = List("zs","ls","ww","zl")
var list4 = List(20,30,40)
val list5:List[(String,Int)] = list3.zip(list4)
println(list5)
滑动窗口函数
窗口的大小,滑动步长
var list6:List[Int] = List(1,2,3,4,5,6,7,8,9,0)
val list7 = list6.sliding(5, 5)
for (item <- list7){
println(item)
}
7、 计算函数
累加值 sum
累乘 product
最大值 max
最小值 min
排序操作
sort by
根据集合的指定值进行排序
无法指定升降序排序 默认是升序
sortWith
传递一个Comparator比较器
指定升降序排序
前者 大于后者返回true 降序排序 前者小于后者返回true 升序排序
list3.sortWith((a, b) => a < b)
8、 隐式转换
隐式转换是Scala中的特色,也是Scala中功能比较强大的一个核心技术,可以帮助我们动态的扩展一个类或者方法的功能
var s:String = "1"
implicit def xx(s:String):Int={
Integer.parseInt(s)
}
var num:Int = s
println(num)