快學scala筆記第三章 數組

1 定義定長數組

var x=new Array[Int](8)

    x(6)=6

    println(x(6))

    for(i<-x)print(i+" ")

2 變長數組

定義變長數組

import scala.collection.mutable.ArrayBuffer

var x=ArrayBuffer[Int]()

向尾部追加元素

    x+=5

向尾部追加多個元素

    x+=(1,2)

使用++=可以追加任何集合

    x++=Array(4,6)

刪除後兩個元素

    x.trimEnd(2)

變長數組的插入與刪除

插入insert(插入索引,元素集合)

x.insert(2,8,7,9)

刪除元素remove(刪除指定位置的索引[,指定刪除的長度])

x.remove(2,3)

變長數組與定長數組的相互轉化

    var x=Array[Char](3)

將定長數組轉化成變長數組

    var x2=x.toBuffer

    x2+=('a','b','c')

將變長數組轉換成定長數組    

    var x3=x2.toArray

3 數組遍歷

.reverse將數組反向輸出

for(i<-(0 until x.length).reverse)

      println(x(i))


until (x.length,2)指定輸出數組步長爲2

var x=Array(1,3,5,7)

    

    for(i<-0 until (x.length,2))

      println(x(i))

增強型的for

var x=Array(1,3,5,7)

    for(i<-x)println(i)


4 數組轉化

通過yield推導出另一個數組

var x=Array(1,3,5,7)

var y=for(i<-x)yield i*2

過濾方法filter

val x=Array(1,2,3,4,5,6)
    var y=x.filter(_ %2==0)

    for(i<-y)println(i)

5 算法

val ra=scala.util.Random
    var data=new Array[Int](5)

    for(i<-0 until data.length)data(i)=ra.nextInt(30)

數組的sum統計加法

    var s=data.sum

    printf("sum:%d\n",s)

得到數組的最大值

    var s2=data.max

    printf("max:%d\n",s2)

數組的快速排序

scala.util.Sorting.Sorting.quickSort(數組)

變長數組排序方法

val ra=Random
    var da=ArrayBuffer[Int]()
    for(i<-0 until 5)da+=ra.nextInt(20)
    val y=da.sorted
    for(i<-y.reverse)println(i)

mkString連接數組

 val ra=Random
   var da=new Array[Int](5)
    for(i<-0 until da.length)da(i)=ra.nextInt(20)
    val str=da.mkString(",")

    val str2=da.mkString("[",",","]")

6 二維數組

var da=Array.ofDim[Double](2,3)
    da(0)(0)=5.5
    for(i<-0 until da.length){
      for(j<-0 until da(i).length)
        printf("da[%d][%d]=%.1f\t",i,j,da(i)(j))
        printf("\n")
    }

 var x=new Array[Array[Int]](3)

爲一維數組賦值不同長度

    x(0)=new Array[Int](2)
    x(1)=new Array[Int](6)
    for(j<-x(1))println(j)


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章