/*
不可变 可变
数组 Array ArrayBuffer
列表 List ListBuffer
散列 immutable.Set mutable.Set
元组 Tuple
*/
// 声明定长数组 并赋初值
val a1 = Array(,,,,)
// 声明定长数组,并指定长度
val a2 = Array[Int]()
// 声明变长数组
val a3 = scala.collection.mutable.ArrayBuffer(,,)
// 下标操作
a1.apply() // 等价于 a1(0)
a1() =
a1
a3.append()
a3
// 数组常用方法
val arr = Array(,,,,)
arr.take() // 取出前n个元素并返回到新的集合中
arr.takeRight() // 取出后n个元素并返回到新的集合中
arr.drop() // 删除前n个元素,并返回剩余元素到新的集合
arr.dropRight() // 删除后n个元素,并返回剩余元素到新的集合
arr.head // 取出集合头元素有别take(1)
arr.last // 取出集合尾元素有别takeRight(1)
val arr1 = Array(,,,,,)
val r1 = arr1.max // 取出最大值
val r2 = arr1.min
val r3 = arr1.sum
val r4 = r3/arr1.length // 求均值
// 遍历集合 匿名函数指定操作
arr1.foreach(x=>println(x))
val a6 = Array(,,)
val a7 = Array(,,)
//求交集返回到新的集合
val r12 = a6.intersect(a7)
// 并集
val r13 = a6.union(a7)
// 去重
val r14 = r13.distinct
// 取差集
val r15 = a6.diff(a7)
val a8 = Array(,,,,,)
// 过滤大于3的元素并返回到新集合中
val r17 = a8.filter(x => x>)
// 操作a8过滤偶数元素并大于4
a8.filter(x =>{x% == && x > })
val a9 = Array("tom M 23","rose F 17","jim M 35")
// 操作a9过滤出男性数据
a9.filter(str => str.split(" ")().equals("M"))
// 操作a9 过滤出成年人数据
a9.filter(str => Integer.parseInt(str.split(" ")()) > )
val a10 = Array(,,,)
// 将集合中每一个元素映射到另一个形式
val r25 = a10.map(num => num*)
val r26 = a10.map(num => num.toString)
// 练习操作a9 用map做映射,返回只有姓名
a9.map(str => str.split(" ")())
// 练习 操作a9求出男性年龄之后
a9.filter(str => str.split(" ")().equals("M")).map(str => str.split(" ")().toInt).sum
val a11 = Array(,,,)
//reduce方法归约方法,底层多次迭代
val r30 = a11.reduce((a,b) => a+b)
// 操作a11 求阶乘结果
val r31 = a11.reduce((a,b) => a*b)
val a12 = Array(,,,,)
// 使用reduce返回a12的最大值
val r32 = a11.reduce((a,b) => if (a>b) a else b)
// 排序
val r33 = a12.sortBy(x => x) // 做升序排序
val r34 = a12.sortBy(x => x).reverse // 做降序排序
val r35 = a12.sortBy(x => -x) // 降序等价于reverse
// 练习:caozuoa13 按姓名做升序排序
val a13 = Array("tom 23","rose 18","jim 40","jary 35")
val r36 = a13.sortBy(str => str.split(" ")())
val r37 = a13.sortBy(str => str.split(" ")()).reverse
// 求出a13中年龄中最小的前三个人的年龄均值
(a13.sortBy(str => str.split(" ")()).take()).map(str => str.split(" ")().toInt)
.sum/
val a14 = Array(,,,)
// 将集合中所有元素返回为一个字符串
val r40 = a14.mkString
val r41 = a14.mkString("^^^") // 指定分隔符返回