本文概述
数组是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<Int>(1, 10, 4, 6, 15)
val myArray3 = arrayOf<String>("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<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, 最后一个元素比数组的大小小一个。
fun main(args: Array<String>){
var myArray = Array<Int>(5){0}
for(element in myArray){
println(element)
}
}
输出:
0
0
0
0
0
Kotlin阵列示例2:
我们还可以使用其索引值重写数组的值。由于我们可以修改array的值, 所以将array称为可变属性。
例如:
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()函数:
还可以使用库函数(例如arrayOf(), intArrayOf()等)声明Kotlin中的数组。让我们来看一下使用arrayOf()和intArrayOf()函数的数组示例。
fun main(args: Array<String>){
val name = arrayOf<String>("Ajay", "Prakesh", "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, "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<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 ArrayListKt.main(Array.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
评论前必须登录!
注册