数组的常见操作
val a = Array(1,2,3,4,5)
//数组求和
val sum = a.sum
//获取数组的最大值
val max = a.max
//对数组进行排序
scala.until.Sorting.quickSort(a)
//获取数据的所有元素内容
a.mkString
//用符号分隔开
a.mkString(",")
//加上左右符号
a.mkString("<",",",">")
//toString 函数
a.toString
b.toString
使用 yield 和函数式变成转换数组
// 对 Array 进行转换
val a = Array(1,2,3,4,5)
val a1 = for(ele <- a) yield ele * ele

// 对 ArrayBuffer 进行转换
val b = ArrayBuffer[Int]()
b += (1,2,3,4,5)
val b1 = for(ele <- b) yield ele * ele

// 结合 if 守卫
val a2 = for(ele <- a if ele % 2 == 0) yield ele * ele

// 使用函数式编程转换数组
// _ 代表任意一个元素,这里就是对于 a 中的每一个元素如果 % 2 == 0 那么映射一下, 后面的 _ 代表判断后的也就是偶数,对于每一个偶数变成二倍。
a.filter(_ % 2 == 0).map(_ * 2)
// 第二种方式
a.filter{_ % 2 == 0}map{_ *2}
Map
//创建一个不可改变的 Map
val ages = Map("Li" -> 18,"Chy" -> 19)

//创建可变的 Map
val ages = scala.collection.mutable.Map("Li" -> 18, "Chy" -> 19)
ages("Li") = 19

// 另外方式
val ages = Map(("Li",19), ("Chy",18))

// 创建一个空的 HashMap
val ages = new scala.collection.mutable.HashMap[String,Int]
访问 Map 的元素
// 获取指定 key 对应的 value,如果 Key 不存在,会报错
val LiAge = ages("Li")

// 使用 contains 函数检查 key 是否存在
val LiAge = if(ages.contains("Li"))ages("Li")else 0

// getOrElse 函数
val LiAge = ages.getOrElse("Li",0)

要是不检查直接访问到不存在会报错。

修改 Map 的元素

// 更新 Map 元素 
ages("Li") = 20

// 增加多个元素
ages += ("Ni" -> 20 , "Yue" -> 21)

// 移出元素
ages -= "Ni"

// 更新不可改变的 Map,和下面那个道理其实是新申请了一个。对于 immutable 是不可改变的。
val ages1 = ages + ("Ni" -> 20 , "Yue" -> 21)
// 移动不可改变的 Map 的元素
val ages2 = ages - "Ni"

遍历 Map

// 遍历 map 的 entrySet
for((key,value) <- ages)println(key + " " + value)

// 遍历 map 的 key
for(key <- ages.keySet) println(key)

// 遍历 map 的 value
for(value <- ages.value) println(value)

// 生成新的 map ,反转 key 和 value
for((key,value) <- ages) yield(value,key)
// 这里如果 key 重复了会发生?
// 会将最后面当做最后的值,前面的会覆盖
SortedMap 和 LinkedHashMap
// SortedMap 可以自动对 Map 的 key 的排序
val ages = scala.collection.immutable.SortedMap("Li" -> 12,"Cui" ->14, "Yue" -> 5)

// LinkedHashMap 可以记住插入 entry 的顺序
val ages = new scala.collection.mutable.LinkedHashMap[String,Int]
ages("Cui") = 14
ages("Li") = 12
ages("Yue") = 5
Map 的元素类型 - Tuple
val t = ("Li",12)
// t._1 = Li
// t.2 = 12
// 访问方式: t._1

// zip 操作
val names = Array("Li","Cui","Chy")
val ages = Array(12,15,5)
val nameAges = names.zip(ages)
for((name,age) <- nameAges) println(name + " " + age)