Scala坑三(数组相关操作)

1.摘要

固定长度:Array;边长:ArrayBuffer

提供初始值时不要使用new

用()访问元素

用for(elem <- arr)遍历元素

用for(elem <- arr  if ...)yeiid...来讲原来数组转为新数组

Scala数组和Java数组互操作,用Arraybuffer,使用Scala.collention.JavaConversioons中的转换函数

2.定长数组

val nums = new Array[Int](10) 10个元素,初始都为0

var s = Array("hello","world") 已经提供了初始,不用new

  s(0) = "haha"//使用()访问数组

Array("haha","world")

3.变长数组:数组缓冲

ArrayBuffer

val b  = ArrayBuffer[Int]()

b += 1    ArrayBuffer(1);

b += (1,2,3,4) ArrayBuffer(1,1,2,3,4)

        b ++= (5,6,7)    使用++=操作符追加任何集合   ArrayBuffer(1,1,2,3,4,5,6,7)

b.trimEnd(5)   移除最后5个元素 ArrayBuffer(1,1,2)

b.insert(2,6)在2处插入6 ArrayBuffer(1,1,6)

b.inser(2,5,6) 在2处插入任意多数 ArrayBuffer(1,1,5,6,6)

b.remove(2)   ArrayBuffer(1,1,6,6)

b.remove(2,2),在2处移除2个元素ArrayBuffer(1,1)

b.toArray 把数组缓冲转换为数组Array

b.toBuffer 把数组a转换成数组缓冲

4.遍历数组和数组缓冲

for(i <- 0 until a.lenth)

倒序 for(i <- (0 until a.lenth).reverse)

5.数组转换

用for推导式

for(...)yieid

用filter和map

a.filter(...).map(...)

6.常用算法

求和/最大/最小 ; Array(1,2,3,4).sum/max/min

排序 val b = Array(1,2,3,4)     b.sorted(_ < _)

显示内容 b.mkString("and")    "1 and 2 and 3 and 4"

toString 

6.多维数组

用foDim

val a = Array.ofDim[Double](3,4) 3行 4列

访问a(row) (column)

7.与JAVA互操作



你可能感兴趣的:(Scala深坑)