1.数组的介绍

  在scala中数组有两种:定长数组和变长数组。
  定长数组:由于Array是不可变的,初始化就有了固定的长度,所以不能直接对其元素进行删除操作,也不能多增加元素,只能修改某个位置的元素值,要实现删除可以通过过滤生成新的数组。所以也就没有:add,insert,remove 等操作。
  变长数组:ArrayBuffer 是可变的,本身提供了很多元素的操作,当然包括增加,删除操作。
  定长数组和变长数组的转化:分别调用 toBuffer()和 toArray()方法即可。

2.关于数组的相关操作(1) 数组的声明:

object Test01 { def main(args: Array[String]): Unit = { //1.使用new的方式声明一个定长数组 val arr1=new Array[Int](5) //2.使用伴生对象的方式生成一个定长数组对象 val arr2=Array(1,2,3) //3.声明一个变长数组 val arr3=ArrayBuffer[Int]() //4.定长数组和变长数组之间的转化 val arr4=arr1.toBuffer //定长---> 变长 val arr5=arr3.toArray //变长--> 定长 }}(2) 数组的增删改:

object Test01 { def main(args: Array[String]): Unit = { //定长 val arr1=Array(1,2,3) //变长 val arr2=ArrayBuffer[Int]() } //定长数组的增改 def DMLARR(arr1:Array[Int]): Unit ={ //增 arr1.+:(2) //首部追加 ,生成新的数组 arr1.:+(2) //尾部追加,生成新的数组 //改,数组的下标从0开始,通过arr1(index)获取下标并修改 arr1(0)=5 } //变长数组的增删改 def DML_Mul_Arr(arr:ArrayBuffer[Int]): Unit ={ //增 arr+=2 //尾部追加 arr+=(1,2,3) //追加多个元素 arr++=Array(1,2,3) //追加一个Array arr++=ArrayBuffer(1,2,3) //追加一个数组缓冲 //插入 arr.insert(0,-1,0) //在某个位置插入一个或者多个元素 //删除 arr.remove(0,2) //从某个位置开始,移除几个元素 }}(3) 数组的遍历:

object Test01 { def main(args: Array[String]): Unit = { val arr=Array(1,2,3,4) //for的简答遍历 for(item<-arr){ println(item) } //使用下标遍历 for(i<- 0 to arr.length-1){ print(arr(i)+"\t") } //使用until for(i<- 0 until arr.length){ print(arr(i)+"\t") } }}(4) 数组的高阶操作:

object Test01 { def main(args: Array[String]): Unit = { val arr=Array(1,2,3,4) //map方法:把数组中一个元素变成另一个元素 arr.map(x=>x*5) //reduce方法,表示把一堆元素聚合成一个元素 arr.reduce((x,y)=>x+y) //Filterm,过滤元素 结果为true的元素保留,结果为false的元素过滤 arr.filter(x=> if(x>2) true else false) //count,根据某些条件,统计需要的元素的个数 var filter_count=arr.count(x=> if(x>2) true else false) //数组求和 var sun=arr.sum //数组求最大值 var max=arr.max //数组的最小值 var min=arr.min //数组的排序 降序 val ints = arr.sortWith((x,y)=>if(x>y) true else false) }}