val arr =newArray[T](数组的长度)
val arr =Array(1,2,3,4,5)//初始化一个长度为8的定长数组,其中所有元素均为0
val arr1 =newArray[Int](8)//直接打印定长数组,内容为数组的hashcode值
println (arr1)//toBuffer会将数组转换成变长数组缓冲println(arr1.toBuffer)//如果使用new,相当于调用了数组的apply方法,直接为数组赋值
val arr2=Array[Int](10)//定义一个长度为3的定长数组,尝试将数据取出、修改,(min/sorted.reverse的用法)
val arr3 =Array("hadoop","bigdata","scala")//定长数组并不限定数组元素的改变,但是不可以增删元素
//初始化一个数组
val arr3= Array[Int](1,2,3,4,5,6,7,8)//for 循环for(i <- arr3)println(i)//好用的until会生成一个Range//reverse是将前面的生成的反转for(i <-(0 until arr3.length).reverse)//等价//for (i <- (arr3.sorted.reverse))//for (i <- (arr3.reverse))println(i)
数组的转换
//yield实现数组的转换
scala> arr
res14: Array[Int]=Array(1,2,3,4)
scala> val res1 =for(e <- arr) yield e*2
res1: Array[Int]=Array(2,4,6,8)
提问字符串可以*2么??
//map实现数组的转换
scala> arr
res16: Array[Int]=Array(1,2,3,4)
scala> val result =arr.map(_*2)
result: Array[Int]=Array(2,4,6,8)
scala> result
res17: Array[Int]=Array(2,4,6,8)//定义一个数组,将偶数取出,乘以10
val arr3= Array[Int](1,2,3,4,5,6,7,8)
val result1 =for(i <- arr3 if i %2==0)yield i*10println(result1.toBuffer)//更高级的方法//filter是过滤,接收一个返回值为boolean的函数//map相当于将数组中的每一个元素取出来,应用传进去的函数
val result2 = arr3.filter(_ %2==0).map(_*10)println(result2.toBuffer)
数组的常用算法
scala> arr
res18: Array[Int]=Array(1,2,3,4)
scala> arr.min
res19: Int =1
scala> arr.max
res20: Int =4
scala> arr.sum
res21: Int =10
scala> arr.sorted.reverse
res22: Array[Int]=Array(4,3,2,1)