一、 scala中的数组
1. scala中的数组有两种,Array和ArrayBuffer,Array是定长数组,ArrayBuffer是变长数组。
2. Array的使用如下:
//1. 定义数组最简洁的方式
val arr1 = Array(1,2,3,4)
val arr2 = Array("hello", "world")
//2. 也可以这么定义
val arr3 = new Array[Int](10)
val arr4 = new Array[String](10)
//3. 访问数组中元素,使用的是()访问
arr3(0) = 20
arr4(0) = "moto"
println(arr1(0))
println(arr2(0))
println(arr3(0))
println(arr4(0))
3. ArrayBuffer的使用如下
//1. 定义一个ArrayBuffer,需要导入包
val arr1 = new ArrayBuffer[Int]()
val arr2 = new ArrayBuffer[String]()
// 2. 向数组中添加元素,使用+=操作符,使用++=可以将另一个集合中的元素加入到数组中
arr1 += 1
arr1 += (2,3,4,5)
arr1 ++= Array(6,7,8,9,10)
//3. 向数组的中间位置添加元素,使用insert()
arr1.insert(3,20)
//4. 删除数组中指定位置的元素,使用remove()
arr1.remove(4)
//5. ArrayBuffer可以与Array进行相互转换
val newArr = arr1.toArray
println(arr1)
4. 数组的遍历,下面提供四种写法
val arr1 = new ArrayBuffer[Int]()
arr1 += 1
arr1 += (2,3,4,5)
arr1 ++= Array(6,7,8,9,10)
// 1. 第一种写法,遍历结果1,2,3,4,5,6,7,8,9,10
for(i <- 0 until arr1.length){
// println(arr1(i))
}
//2. 可以跳跃遍历数组,遍历结果1,3,5,7,9
for(i <- 0 until (arr1.length, 2)){
// println(arr1(i))
}
//3. 可以反序遍历数组,注意()的写法,遍历结果10,9,8,7,6,5,4,3,2,1
for(i <- (0 until arr1.length).reverse){
// print(arr1(i) + " ")
}
//4. 使用增强for循环进行遍历,结果1,2,3,4,5,6,7,8,9,10
for(ele <- arr1){
println(ele)
}
5. 对数组求最大值、平均值、最小值、排序、拼接等操作
//5. 获取数组最大值
println(arr1.max)
//6. 对数组进行排序
quickSort(arr1.toArray)
//7. 将数组元素拼接起来
println(arr1.mkString("<", ",", ">"))
6. 对数组进行转换操作
//8. 根据已有的arr,转换生成新的array
val arr2 = for(ele <- arr1) yield ele * ele
// println(arr2)
//9. 结合if守卫,转换生成新的array,注意if的位置
val arr3 = for(ele <- arr1 if ele %2 ==0) yield ele * ele
// println(arr1)
// println(arr3)
//10. 使用函数式编程
val arr4 = arr1.filter(_%2 == 0).map(_ * 2)
println(arr1)
println(arr4)