数组的定义
//数组的定义,定义一个长度固定的数组,内容可变
交互式窗口中:
1.val arr = new Array[Int](3) //括号里放的是长度
arr(0) = 100 改变了内容
2.val arr = Array[Int](1,3,4,7) //括号里放的是具体的内容
/**
* 数组为什么不用new ,其实这里面隐藏地调用了apply方法
* 即 相当于 val arr = Array.apply(1,3,5,8,9)
*/
map|flatten|flatMap|foreach 方法地使用
map 方法
数组经过map方法之后返回的是一个新的数组
val arr = Array(1,3,5,8,9)
val fx = (x:Int) => x*10
//arr 经过map映射操作以后会返回一个新的数组,具体原因可以看map操作源码
val r1 = arr.map(fx)
//还可以这样写
arr.map((x:Int)=>x * 10)
arr.map(x => x*10)
arr.map(_*10) //下划线代表地就是Array里面的每一个参数
flatten扁平化操作
flatMap 方法 相当于 先map 再 flatten
上图中还可以这样写: arr.flatMap(_.split(" "))
foreach 操作: 打印出数组中的元素
arr.flatMap.(_.split(" ")).foreach(x => println(x))
求每个元素地数量 wordCount
val r3 = arr.flatMap(x=>x.split(" ")).groupBy(x => x)
//.map(x => x._2.length)
.mapValues(x =>x.length).toList.sortBy(x => -x._2) //加一个-是降序
//map 结构不可以排序,所以用toList操作
//r3是一个map结构