集合(二)
数组
不可变数组与可变数组的转换
arr1.toBuffer //不可变数组转可变数组
arr2.toArray //可变数组转不可变数组
- arr2.toArray 返回结果才是一个不可变数组,arr2 本身没有变化
- arr1.toBuffer 返回结果才是一个可变数组,arr1 本身没有变化
实例:
运行结果·:
多维数组
定义:val arr = Array.ofDim[Double](3,4)
二维数组中有三个一维数组,每个一维数组中有四个元素
实例:
运行结果:
列表List
不可变列表
-
List 默认为不可变集合
-
创建一个 List(数据有顺序,可重复)
- 遍历 List
-
List 增加数据
-
集合间合并:将一个整体拆成一个一个的个体,称为扁平化
-
空集合 Nil
实例:
运行结果:
可变ListBuffer
实例:
运行结果:
Set集合
默认情况下, Scala 使用的是不可变集合, 如果你想使用可变集合, 需要引用·scala.collection.mutable.Set 包
不可变 Set
- Set 默认是不可变集合,数据无序
-
数据不可重复
-
遍历集合
实例:
运行结果:
可变mutable.Set
实例:
运行结果:
Map集合
Scala 中的 Map 和 Java 类似,也是一个散列表,它存储的内容也是键值对(key-value) 映射
不可变 Map
实例:
运行结果:
可变Map
实例:
运行结果·:
元组
元组也是可以理解为一个容器,可以存放各种相同或不同类型的数据。说的简单点,就是将多个无关的数据封装为一个整体,称为元组
注:元组中最大只能有 22 个元素
实例:
运行结果:
集合常用函数
基本属性和常用操作
实例:
运行结果:
衍生集合
实例:
运行结果:
集合计算简单函数
实例:
运行结果:
sorted:对一个集合进行自然排序,通过传递隐式的Ordering
sortBY:对一个属性或多个属性进行排序,通过它的类型
sortWith:基于函数的排序,通过一个 comparator 函数,实现自定义排序的逻辑