在scala中数组有两种:定长数组和变长数组。
定长数组:由于Array是不可变的,初始化就有了固定的长度,所以不能直接对其元素进行删除操作,也不能多增加元素,只能修改某个位置的元素值,要实现删除可以通过过滤生成新的数组。所以也就没有:add,insert,remove 等操作。
变长数组:ArrayBuffer 是可变的,本身提供了很多元素的操作,当然包括增加,删除操作。
定长数组和变长数组的转化:分别调用 toBuffer()和 toArray()方法即可。
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 //变长--> 定长
}
}
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) //从某个位置开始,移除几个元素
}
}
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")
}
}
}
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)
}
}
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。