Kotlin数组

数组是IntString等类似数据类型的集合。Kotlin中的数组本质上是可变的,具有固定大小,这意味着可以对数组元素执行读写操作。

数组的构造函数

使用指定的大小和init函数声明数组构造函数。 init函数用于返回带有索引的数组元素。

Array(size: Int, init: (Int) -> T)

可以使用arrayOf()intArrayOf()charArrayOf()booleanArrayOf()longArrayOf()shortArrayOf()byteArrayOf()函数创建Kotlin数组。

Kotlin数组声明 - 使用arrayOf()函数

var myArray1 = arrayOf(1,10,4,6,15)  
var myArray2 = arrayOf<Int>(1,10,4,6,15)  
val myArray3 = arrayOf<String>("Ajax","Prake","Michel","John","Curry")  
var myArray4= arrayOf(1,10,4, "Ajax","Prake")

Kotlin数组声明 - 使用intArrayOf()函数

var myArray5: IntArray = intArrayOf(5,10,20,12,15)

修改和访问数组的元素

Kotlin数组有set()get()函数,可以分别直接修改和访问数组的特定元素。

数组set()函数用于在特定索引位置设置元素。 这也可以通过在数组索引处分配元素来完成。 数组 get()函数用于从指定的索引获取元素。

Kotlin数组set()函数示例

fun main(args: Array<String>) {
    val array1 = arrayOf(1,2,3,4)
    val array2 = arrayOf<Long>(11,12,13,14)
    array1.set(0,5)
    array1[2] = 6

    array2.set(2,10)
    array2[3] = 8

    for(element in array1){
        println(element)
    }
    println()
    for(element in array2){
        println(element)
    }
}

执行上面示例代码,得到以下结果 -

5
2
6
4

11
12
10
8

Kotlin数组get()函数示例

fun main(args: Array<String>) {
    val array1 = arrayOf(1,2,3,4)
    val array2 = arrayOf<Long>(11,12,13,14)
    println(array1.get(0))
    println(array1[2])
    println()
    println(array2.get(2))
    println(array2[3])
}

执行上面示例代码,得到以下结果 -

1
3

13
14

Kotlin数组示例1:

在这个例子中,只是初始化一个大小为5的数组,默认值为0并遍历元素。 数组的索引值从0开始。数组的第一个元素放在索引值0,最后一个元素放在一个小于数组大小1索引的元素。

fun main(args: Array<String>){
    var myArray = Array<Int>(5){0}

    for(element in myArray){
        println(element)
    }
}

执行上面示例代码,得到以下结果 -

0
0
0
0
0

Kotlin数组示例2:

还可以使用其索引值重写数组的值。 因为可以修改数组的值,所以数组称为可变属性。

例如:

fun main(args: Array<String>){
    var myArray = Array<Int>(5){0}

    myArray[1]= 10
    myArray[3]= 15

    for(element in myArray){
        println(element)
    }
}

执行上面示例代码,得到以下结果 -

0
10
0
15
0

Kotlin数组示例3 - 使用arrayOf()和intArrayOf()函数:
Kotlin中的数组也可以使用库函数声明,例如arrayOf()intArrayOf()等。下面来看看使用arrayOf()intArrayOf()函数的数组示例。

fun main(args: Array<String>){
    val name = arrayOf<String>("Ajax","Prake","Michel","John","Sumit")
    var myArray2 = arrayOf<Int>(1,10,4,6,15)
    var myArray3 = arrayOf(5,10,20,12,15)
    var myArray4= arrayOf(1,10,4, "Ajax","Prake")
    var myArray5: IntArray = intArrayOf(5,10,20,12,15)

    for(element in name){
        println(element)
    }

    println()
    for(element in myArray2){
        println(element)
    }
    println()
    for(element in myArray3){
        println(element)
    }
    println()
    for(element in myArray4){
        println(element)
    }
    println()
    for(element in myArray5){
        println(element)
    }

}

执行上面示例代码,得到以下结果 -

Ajax
Prake
Michel
John
Sumit

1
10
4
6
15

5
10
20
12
15

1
10
4
Ajax
Prake

5
10
20
12
15

Kotlin数组示例4

假设当尝试在索引位置插入一个大于数组大小的元素时会发生什么情况?

它将抛出一个ArrayIndexOutOfBoundException。 这是因为尝试插入元素时不存在索引值。 因此,数组是固定大小长度。 例如:

fun main(args: Array<String>){
    var myArray5: IntArray = intArrayOf(5,10,20,12,15)

    myArray5[6]=18 // ArrayIndexOutOfBoundsException
    for(element in myArray5){
        println(element)
    }
}

执行上面示例代码,得到以下结果 -

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 6
    at HelloWorldKt.main(HelloWorld.kt:4)

Kotlin数组例5 - 遍历使用范围:

还可使用索引范围(minValue..maxValue)或(maxValue..minValue)遍历Kotlin的数组元素。 让我们来看看一个使用范围遍历数组的示例。

fun main(args: Array<String>){
    var myArray5: IntArray = intArrayOf(5,10,20,12,15)

    for (index in 0..4){
        println(myArray5[index])
    }
    println()
    for (index in 0..myArray5.size-1){
        println(myArray5[index])
    }
}

执行上面示例代码,得到以下结果 -

5
10
20
12
15

5
10
20
12
15

上一篇:Kotlin内联函数

下一篇:Kotlin字符串

关注微信小程序
程序员编程王-随时随地学编程

扫描二维码
程序员编程王

扫一扫关注最新编程教程