Kotlin入門(4)聲明與操作數組


上一篇文章介紹了基本變量類型在Kotlin中的用法,不過這只針對單個變量,如果要求把一組相同類型的變量排列起來,形成一個變量數組,那又該如何聲明和操作呢?

在Java中聲明數組,跟在C語言中聲明是一樣的,以整型數組為例,聲明並賦值的語句如下所示:

    int[] int_array = new int[] {1, 2, 3};

其它基本類型的數組聲明與之類似,只要把int替換為long、float、double、boolean、char即可。但在Kotlin中,聲明並賦值一個整型數組的語句是下面這樣的:

    var int_array:IntArray = intArrayOf(1, 2, 3)

兩相對比,對於整型數組的聲明,Java與Kotlin有以下區別:
1、Kotlin另外提供了新的整型數組類型即IntArray;
2、分配一個常量數組,Kotlin調用的是intArrayOf方法,並不使用new關鍵字;
推而廣之,其它類型的數組也各有自己的數組類型,以及對應分配常量數組的方法,說明如下:
長整型數組:數組類型為LongArray,分配方法為longArrayOf;
浮點數組:數組類型為FloatArray,分配方法為floatArrayOf;
雙精度數組:數組類型為DoubleArray,分配方法為doubleArrayOf;
布爾型數組:數組類型為BooleanArray,分配方法為booleanArrayOf;
字符數組:數組類型為CharArray,分配方法為charArrayOf;
以上幾種基本變量數組的聲明代碼舉例如下:

    var long_array:LongArray = longArrayOf(1, 2, 3)
    var float_array:FloatArray = floatArrayOf(1.0f, 2.0f, 3.0f)
    var double_array:DoubleArray = doubleArrayOf(1.0, 2.0, 3.0)
    var boolean_array:BooleanArray = booleanArrayOf(true, false, true)
    var char_array:CharArray = charArrayOf('a', 'b', 'c')

  

不知讀者有沒有注意到,上面的數組類型不包括字符串數組,而Java是允許使用字符串數組的,代碼示例如下:

    String[] string_array = new String[] {"How", "Are", "You"};

但在Kotlin這里,並不存在名為StringArray的數組類型,因為String不屬於基本變量類型。要想在Kotlin中聲明字符串數組,得使用Array<String>,也就是把String用尖括號包起來;同時,分配字符串數組的方法也相應變成了arrayOf,具體代碼如下所示:

    var string_array:Array<String> = arrayOf("How", "Are", "You")

這種字符串數組的聲明方式是不是很熟悉?看起來就跟Java里面的ArrayList用法差不多,都是在尖括號中間塞進數據結構的類型。同理,其它變量類型也能通過Array<***>方式來聲明,像前面介紹的整型數組,其實可以使用類型Array<Int>,以此類推改造之后的數組聲明代碼如下:

    var int_array:Array<Int> = arrayOf(1, 2, 3)
    var long_array:Array<Long> = arrayOf(1, 2, 3)
    var float_array:Array<Float> = arrayOf(1.0f, 2.0f, 3.0f)
    var double_array:Array<Double> = arrayOf(1.0, 2.0, 3.0)
    var boolean_array:Array<Boolean> = arrayOf(true, false, true)
    var char_array:Array<Char> = arrayOf('a', 'b', 'c')

  

現在聲明數組和對數組賦值都有了,還需要對數組做進一步的處理,常見的處理包括獲取數組長度、獲取指定位置的數組元素等等,這些功能在Java與Kotlin之間的區別包括:
關於獲取數組長度,Java使用.length,而Kotlin使用.size。
關於獲取指定位置的數組元素,Java通過方括號加下標來獲取,比如“int_array[0]”指的是得到該數組的第一個元素;Kotlin也能通過方括號加下標來獲取指定元素,不過Kotlin還擁有get和set兩個方法,通過get方法獲取元素值,通過set方法修改元素值,看起來就像在操作ArrayList隊列。
下面是字符串數組的具體操作代碼:

    btn_string.setOnClickListener {
        var str:String = ""
        var i:Int = 0
        while (i<string_array.size) {
            str = str + string_array[i] + ", "
            //數組元素可以通過下標訪問,也可通過get方法訪問
            //str = str + string_array.get(i) + ", "
            i++
        }
        tv_item_list.text = str
    }

最后上個Kotlin操作各類型數組的效果動圖,目的是把數組中的元素拼接成字符串並顯示出來:

 

__________________________________________________________________________
本文現已同步發布到微信公眾號“老歐說安卓”,打開微信掃一掃下面的二維碼,或者直接搜索公眾號“老歐說安卓”添加關注,更快更方便地閱讀技術干貨。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM