📜  Kotlin数组

📅  最后修改于: 2021-01-05 07:28:31             🧑  作者: Mango

Kotlin阵列

数组是Int,String等相似数据类型的集合。Kotlinis中的Array本质上是可变的,具有固定大小,这意味着我们可以对数组元素执行读取和写入操作。

数组的构造函数:

数组构造函数以指定的大小init函数。初始化函数用于返回数组元素及其索引。

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

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

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

var myArray1 = arrayOf(1,10,4,6,15)
var myArray2 = arrayOf(1,10,4,6,15)
val myArray3 = arrayOf("Ajay","Prakesh","Michel","John","Sumit")
var myArray4= arrayOf(1,10,4, "Ajay","Prakesh")

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

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

修改和访问数组元素

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

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

Kotlin数组set()函数示例

fun main(args: Array) {
val array1 = arrayOf(1,2,3,4)
val array2 = arrayOf(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) {
val array1 = arrayOf(1,2,3,4)
val array2 = arrayOf(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,最后一个元素比数组的大小小一个。

fun main(args: Array){
var myArray = Array(5){0}

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

输出:

0
0
0
0
0

Kotlin阵列示例2:

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

例如:

fun main(args: Array){
var myArray = Array(5){0}

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

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

输出:

0
10
0
15
0

Kotlin数组示例3-使用arrayOf()和intArrayOf()函数:

还可以使用库函数(例如arrayOf(),intArrayOf()等)声明Kotlin中的数组。让我们来看一下使用arrayOf()和intArrayOf()函数的数组示例。

fun main(args: Array){
val name = arrayOf("Ajay","Prakesh","Michel","John","Sumit")
var myArray2 = arrayOf(1,10,4,6,15)
var myArray3 = arrayOf(5,10,20,12,15)
var myArray4= arrayOf(1,10,4, "Ajay","Prakesh")
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)
    }

}

输出:

Ajay
Prakesh
Michel
John
Sumit

1
10
4
6
15

5
10
20
12
15

1
10
4
Ajay
Prakesh

5
10
15
20
25

Kotlin阵列示例4

假设当我们尝试在大于数组大小的索引位置插入元素时,会发生什么?

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

fun main(args: Array){
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 ArrayListKt.main(Array.kt:4)

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

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

fun main(args: Array){
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