溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Scala中的數(shù)組

發(fā)布時間:2020-07-25 10:02:55 來源:網(wǎng)絡(luò) 閱讀:1174 作者:原生zzy 欄目:開發(fā)技術(shù)

1.數(shù)組的介紹

  在scala中數(shù)組有兩種:定長數(shù)組變長數(shù)組。
定長數(shù)組:由于Array是不可變的,初始化就有了固定的長度,所以不能直接對其元素進行刪除操作,也不能多增加元素,只能修改某個位置的元素值,要實現(xiàn)刪除可以通過過濾生成新的數(shù)組。所以也就沒有:add,insert,remove 等操作。
變長數(shù)組:ArrayBuffer 是可變的,本身提供了很多元素的操作,當然包括增加,刪除操作。
定長數(shù)組變長數(shù)組的轉(zhuǎn)化:分別調(diào)用 toBuffer()toArray()方法即可。

2.關(guān)于數(shù)組的相關(guān)操作

(1) 數(shù)組的聲明:

object Test01 {
    def main(args: Array[String]): Unit = {
        //1.使用new的方式聲明一個定長數(shù)組
        val arr1=new Array[Int](5)
        //2.使用伴生對象的方式生成一個定長數(shù)組對象
        val arr2=Array(1,2,3)
        //3.聲明一個變長數(shù)組
        val arr3=ArrayBuffer[Int]()

        //4.定長數(shù)組和變長數(shù)組之間的轉(zhuǎn)化
        val arr4=arr1.toBuffer  //定長---> 變長
        val arr5=arr3.toArray          //變長--> 定長
    }
}

(2) 數(shù)組的增刪改:

object Test01 {
    def main(args: Array[String]): Unit = {
        //定長
        val arr1=Array(1,2,3)
        //變長
        val arr2=ArrayBuffer[Int]()
    }
    //定長數(shù)組的增改
    def DMLARR(arr1:Array[Int]): Unit ={
        //增
        arr1.+:(2) //首部追加 ,生成新的數(shù)組
        arr1.:+(2) //尾部追加,生成新的數(shù)組

        //改,數(shù)組的下標從0開始,通過arr1(index)獲取下標并修改
        arr1(0)=5
    }
    //變長數(shù)組的增刪改
    def DML_Mul_Arr(arr:ArrayBuffer[Int]): Unit ={
        //增
        arr+=2 //尾部追加
        arr+=(1,2,3) //追加多個元素
        arr++=Array(1,2,3) //追加一個Array
        arr++=ArrayBuffer(1,2,3) //追加一個數(shù)組緩沖

        //插入
        arr.insert(0,-1,0) //在某個位置插入一個或者多個元素

        //刪除
        arr.remove(0,2) //從某個位置開始,移除幾個元素
    }
}

(3) 數(shù)組的遍歷:

object Test01 {
    def main(args: Array[String]): Unit = {
        val arr=Array(1,2,3,4)
        //for的簡答遍歷
        for(item<-arr){
            println(item)
        }
        //使用下標遍歷
        for(i<- 0 to arr.length-1){
            print(arr(i)+"\t")
        }

        //使用until
        for(i<- 0 until arr.length){
            print(arr(i)+"\t")
        }
    }
}

(4) 數(shù)組的高階操作:

object Test01 {
    def main(args: Array[String]): Unit = {
        val arr=Array(1,2,3,4)
        //map方法:把數(shù)組中一個元素變成另一個元素
        arr.map(x=>x*5)

        //reduce方法,表示把一堆元素聚合成一個元素
        arr.reduce((x,y)=>x+y)

        //Filterm,過濾元素 結(jié)果為true的元素保留,結(jié)果為false的元素過濾
        arr.filter(x=> if(x>2) true else false)

        //count,根據(jù)某些條件,統(tǒng)計需要的元素的個數(shù)
        var filter_count=arr.count(x=> if(x>2) true else false)

        //數(shù)組求和
        var sun=arr.sum
        //數(shù)組求最大值
        var max=arr.max
        //數(shù)組的最小值
        var min=arr.min

        //數(shù)組的排序 降序
        val ints = arr.sortWith((x,y)=>if(x>y) true else false)
    }
}
向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI