Scala中的数组
admin
2023-07-26 09:00:07
0次

1.数组的介绍

  在scala中数组有两种:定长数组和变长数组。
  定长数组:由于Array是不可变的,初始化就有了固定的长度,所以不能直接对其元素进行删除操作,也不能多增加元素,只能修改某个位置的元素值,要实现删除可以通过过滤生成新的数组。所以也就没有:add,insert,remove 等操作。
  变长数组:ArrayBuffer 是可变的,本身提供了很多元素的操作,当然包括增加,删除操作。
  定长数组和变长数组的转化:分别调用 toBuffer()和 toArray()方法即可。

2.关于数组的相关操作

(1) 数组的声明:

object Test01 {
    def main(args: Array[String]): Unit = {
        //1.使用new的方式声明一个定长数组
        val arr1=new Array[Int](5)
        //2.使用伴生对象的方式生成一个定长数组对象
        val arr2=Array(1,2,3)
        //3.声明一个变长数组
        val arr3=ArrayBuffer[Int]()

        //4.定长数组和变长数组之间的转化
        val arr4=arr1.toBuffer  //定长---> 变长
        val arr5=arr3.toArray          //变长--> 定长
    }
}

(2) 数组的增删改:

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

        //改,数组的下标从0开始,通过arr1(index)获取下标并修改
        arr1(0)=5
    }
    //变长数组的增删改
    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) //追加一个数组缓冲

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

        //删除
        arr.remove(0,2) //从某个位置开始,移除几个元素
    }
}

(3) 数组的遍历:

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) 数组的高阶操作:

object Test01 {
    def main(args: Array[String]): Unit = {
        val arr=Array(1,2,3,4)
        //map方法:把数组中一个元素变成另一个元素
        arr.map(x=>x*5)

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

        //Filterm,过滤元素 结果为true的元素保留,结果为false的元素过滤
        arr.filter(x=> if(x>2) true else false)

        //count,根据某些条件,统计需要的元素的个数
        var filter_count=arr.count(x=> if(x>2) true else false)

        //数组求和
        var sun=arr.sum
        //数组求最大值
        var max=arr.max
        //数组的最小值
        var min=arr.min

        //数组的排序 降序
        val ints = arr.sortWith((x,y)=>if(x>y) true else false)
    }
}

上一篇:Scala的集合

下一篇:Scala的方法和函数

相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...