Scala数组

定义数组array:

//创建数组
var arr1=Array(1,2,3)//初始化赋值数组
var arr2=New Array[Int](3)//初始化指定元素为Int,长度为3不可变
//遍历数组
for(i<-arr1.indices)print(i)//i表示从1到arr1的长度为止的数字序列
//数组赋值
arr1(0)=10//赋值10给数组第一个元素
//数组的方法
var amax=arr1.max//数组最大值,其他聚合函数用法相同
var alen=arr1.length//数组长度
//map方法,遍历后yield
var aarr=arr1.map(_+1)//map相当于yield,过程为所有元素+1,返回新数组
//foreach方法,遍历无输出
arr1.foreach(printf _)//遍历打印
//过滤器
var newarr=arr1.filter(_%2==0)//满足过滤条件的元素生成新数组,_表示所有元素
//合并数组
var carr=concat(arr1,arr2)
//数组排序
var sarr=arr1.sorted
//字符串拆分后按长度排序
var sarr="aaa aa a aaaa".split("\\s").sortWith(_.length < _.length )
//reduceLeft方法,第一个元素和第二元素操作后的结果与第三个元素操作
var res=arr1.reduceLeft(_*_)//阶乘
//比较两个数组的所有元素
var flag=arr1.corresponds(arr2)(_.equals(_))//元素依次比对返回布尔
//zip方法,依次组合两个Range,返回Vector,两个Array,返回元组
var a1=1 to 5
var a2=2 to 6
var a3=a1 zip a2//返回Vector((1,2), (2,3), (3,4), (4,5), (5,6))

变长数组arraybuffer:

//创建和遍历数组的方法同Array
var arr=new ArrayBuffer[Int]()
//赋值
arr+=(1,2,3)
//在指定索引位置追加元素
arr.insert(0,10,20)//在0索引位置,追加10和20
//追加其他数组的元素
arr++=ArrayBuffer(4,5,6)
//截取元素
arr.trimStart(2)//前两个
arr.trimEnd(2)//后两个
//按索引删除
arr.remove(0)//删除第一个元素

相关推荐