//长度为10的整数数组,所有元素初始化为0??
?val?numArr?=?new?Array[Int](10)????
//长度为10的字符串数组,所有元素初始化为null??val?numArr?=?new?Array[String](10)??
??//长度为2的数组,数据类型自动推断出来,已经提供初始值就不需要new关键字??
val?s?=?Array("cai","yong")????
//通过ArrayName(index)访问数组元素和更改数组元素??val?s?=?Array("cai","yong")??
?println(s(0))??s(0)?=?"haha"??
println(s(0))??输出:
//一个空的数组缓冲,准备存放整数??
?val?ab?=?ArrayBuffer[Int]()???val?ab2?=?new?ArrayBuffer[Int]??
??//用+=在尾部添加元素??
ab?+=?2????
//在尾部添加多个元素??ab?+=?(1,2,3,4,5)??
??//通过++=往数组缓冲后面追加集合??
?ab?++=?Array(6,7,8,9)????
//使用trimEnd(n)移除尾部n个元素??ab.trimEnd(3)??
??//在下标3之前插入元素??
ab.insert(3,?33)????
//插入多个元素,第一个值为index,后面所有的值为要插入的值??ab.insert(3,3,4,5,6)??
??//移除某个位置的元素??
ab.remove(3)????
//移除从下标为n开始(包括n)的count个元素??ab.remove(n,?count)??
??????? 有时候需要构造一个Array,但是不知道具体要存放多少元素,可以先构造ArrayBuffer,再调用toArray方法转化成Array,同样,对Array调用toBuffer方法可以转成ArrayBuffer.
注:在数组缓冲的尾部进行元素添加移除操作的效率很高,但是在任意位置插入或移除元素的效率并不太高效,因为涉及到数组元素的移动。
//for循环遍历??
for(i?<-?0?until?ab.length){???print(ab(i)?+?",?")??
?}????
//根据特定步长遍历数组??for(i?<-?0?until?(ab.length,?2)){??
?print(ab(i)?+?",?")???}??
??//从数组的尾部开始向前遍历数组??
for(i?<-?(0?until?ab.length).reverse){???print(ab(i)?+?",?")??
}????
//类似于Java中的foreach遍历数组???for(elem?<-?ab){??
?print(elem?+?",?")??}
//进行数组转换会生成一个新的数组,而不会修改原始数组??
?val?change?=?for(elem?<-?ab)?yield?elem?*?2??for(elem?<-?change){??
print(elem?+?",?")???}??
??//添加一个守卫的数组转换??
val?change?=?for(elem?<-?ab?if?elem%2?==?0)?yield?elem?*?2??//sum求和(数组与阿奴必须是数值型数据)??
println(change.sum)????
//min?max?输出数组中最小和最大元素??println(change.min)??
println(change.max)????
//使用sorted方法对数组或数组缓冲进行升序排序,这个过程不会修改原始数组???val?sortArr?=?ab.sorted???
?for(elem?<-?sortArr)???print(elem?+?",?")??
??//使用比较函数sortWith进行排序??
val?sortArr?=?ab.sortWith(_>_)????
//数组显示???println(sortArr.mkString("|"))??
?println(sortArr.mkString("startFlag","|","endFlag"))??//构造一个2行3列的数组??
val?arr?=?Array.ofDim[Int](2,3)??println(arr.length)??
println(arr(0).length)??arr(0)(0)?=?20??
println(arr(0)(0))????
//创建长度不规则的数组??val?arr?=?new?Array[Array[Int]](3)??
?????????for(i?<-?0?until?arr.length){??
arr(i)?=?new?Array[Int](i?+?2)??}??
????????for(i?<-?0?until?arr.length){??
println(arr(i).length)??}