Scala快学(3) 数组相关操作

来源:互联网 发布:免费视频制作软件知乎 编辑:程序博客网 时间:2024/05/23 19:19

1. 定长数组的定义与操作

// 定义val nums = new Array[Int](10)val strs = Array("Hello","World")// 操作nums(0) = 10strs(1) = "Ass"// 定长数组转换为变长数组// nums变为ArrayBuffer类型nums.toBuffer

2. 变长数组的定义与操作

// 定义val b = ArrayBuffer[Int]()val bb = ArrayBuffer[Int]// 末尾添加元素b += 1b += (1,2,3,4,5)// ++=操作追加任意集合b ++= Array(1,2,3,4,5)// 移除末尾元素b.trimEnd(5)// insert与remove操作// 第一个数字都表示下标,从0开始计数b.insert(2,6,7)b.remove(2,2)// 变长数组转换成定长数组// b代表的变量就会变为Array类型b.toArray()

3. 多维数组

// 可以通过ofDim方法matrix = Array.ofDim[Double](3,4)matrix = Array.ofDim[Double](3,4,5)// 传统方式,可以创建不规则数组matrix = Array[Array[Double]](10)for( i <- 0 until 10 )    matrix(i) = new Array[Int](i+1)

4. TIPS

// 为了实现类似Java中for(int i = 0 ; i < 10 ; i += 2)的功能for( i <- 0 until (10,2) ) println(i)// 数组转换// 1. 使用for推导式,即yieldval results = for(i <- 0 to 10 ) yield i// 2. 函数式编程a.filter( _%2==0).map(2*_)//常用算法// 求和,只能对整型、浮点型、BigInteger、BigDecimal进行求和val sum = Array(1,2,3,4,5).sum// 排序,会新生成一个排序结果,不会对原有数组排序// 以下结果,c还是未排序,d已经排序完成val c = Array(1,5,2,4,6)val d = c.sorted// 显示或缓存内容a.mkString(" and ")a.mkString("<", ",", ">")
0 0
原创粉丝点击