📅  最后修改于: 2021-01-05 07:39:53             🧑  作者: Mango
Array是Int,String等类型的相似数据的集合。Kotlin中的Array本质上具有可变的固定大小。这意味着我们可以对数组的元素执行读写操作。
它初始化大小为5的int类型数组的元素,所有元素均为0(零)。
var myArray = Array(5){0}
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")
var myArray5: IntArray = intArrayOf(5,10,20,12,15)
让我们看一下Kotlin中的数组示例。在此示例中,我们将看到如何初始化和遍历其元素。
在此示例中,我们只是简单地初始化了一个大小为5的数组,默认值为0。数组的索引值从0开始。数组的第一个元素放置在索引0处,而最后一个元素的放置位置比数组的大小小一个。
fun main(args: Array){
var myArray = Array(5){0}
for(element in myArray){
println(element)
}
}
输出:
0
0
0
0
0
我们还可以使用其索引值重写数组的值。由于我们能够修改数组的值,因此它在本质上被称为可变的。例如:
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中的Array也使用不同的函数(例如arrayOf(),intArrayOf()等)进行声明。让我们看一下示例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
假设当我们尝试在大于数组大小的索引位置处插入元素时发生了什么?它将抛出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)
还可以使用索引范围(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