Scala-基础-数组(1)
import junit.framework.TestCase import scala.collection.mutable.ArrayBuffer; //数组(1) //知识点-定义数组,变长数组,遍历数组,数组转换 class Demo1 extends TestCase { //定义数组 def test_^^() { //定义数组语法1 val 变量名 = new Array[类类型](长度) 相当于java中 int indexs [] = new int [10]; val nums = new Array[Int](10) //定义数组语法2 val 变量名 = Array(具体值,用逗号分开) 相当于java中 int indexs [] = {1,2,3}; //数组类型是推断出来的 val cums = Array(1, 2, 3) //通过 数组变量(下标) 访问数组中的元素 而不是 数组变量[下标] val n1 = nums(1) //相当于 int n1 = nums[1]; } //变长数组 def test_@@() { //定义变长数组语法1 val 变量名 = new ArrayBuffer[类类型]() val nums = new ArrayBuffer[Int]() //尾端添加元素 nums += 10 //尾端添加多个元素 nums += (5, 5, 9, 10) //尾端添加其他数组或集合 val cums = Array(1, 2, 3, 4, 5) nums ++= cums //在指定下标插入元素 nums.insert(1, 0) nums.insert(1, -1, -2, -3) //移除尾部2个元素 nums.trimEnd(2) //移除元素 nums.remove(2) //移除指定下标 几个元素 nums.remove(1, 2) //变长数组转为固定长度数组 nums.toArray //数组转为变长数组 val kums = Array(0); kums.toBuffer } //遍历数组 def test_&&() { val cums = Array(1, 2, 3) //正序遍历 for (i <- 0 until cums.length) println(cums(i)) for (i <- 0.until(cums.length)) println(cums(i)) // 0 until 10 返回 0 到9 // 0 to 10 返回0 到10 //实际上 0 until 10 底部是是用过方法调用: 0.until(10) val k = 0 until 10 //倒序遍历 访问函数时 点忽略了 () 也忽略了 单个参数或者无参数的前提 for (i <- (0.until(cums.length)).reverse) println(cums(i)) for (i <- 0 until cums.length reverse) println(cums(i)) //遍历 间隔 for (i <- 0 until cums.length) println() //增强for循环 for (ele <- cums) println(ele) } //数组转换 //yield 保存每次迭代出的变量,并且将执行某些动作后保存到新的数组中去 def test_%%(){ val array = Array(12,-1,-2,0) val rs1 = for(ele <- array) yield (ele+10)%3 val rs2 = for(ele <- array if ele%2==0) yield (ele+11)*2 } //常用算法 def test_##(){ val array = Array(-1,8,5,15) val s1 = array.sum//合集 val s2 = array.max//最大值 val s3 = array.min//最小值 val s4 = array.sorted//排序 scala.util.Sorting.quickSort(array)//快速排序 } //多维数组 def test_!!(){ val moreArray = new Array[Array[Int]](10) val moreArray2 = Array.ofDim[Double](2, 2) moreArray(0)(0) = 2 moreArray(0) = new Array[Int](10) for(i <- 0 until moreArray.length){ moreArray(i) = new Array[Int](i+1) } for(x <- moreArray2;i<- 0 until x.length) x(i) = 5 } }