Array是Int
,String
等類似資料的集合。Kotlin中的陣列具有固定大小的可變性。 這意味著可以對陣列元素執行讀寫操作。
陣列宣告語法
下面是一個初始化為int
型別的元素,大小為5
,所有元素都為0
的陣列。
var myArray = Array<Int>(5){0}
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","Sumit")
var myArray4= arrayOf(1,10,4, "Ajax","Prake")
或者
var myArray5: IntArray = intArrayOf(5,10,20,12,15)
下面來看看Kotlin中的陣列範例。 在這個例子中,將看到如何初始化和遍歷陣列中的元素。
在這個例子中,只是初始化一個大小為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
還可以使用索引值重寫陣列的值。 陣列的值是可以修改的,所以把它稱為可變陣列。 例如:
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中的陣列也宣告使用不同的函式,如arrayOf()
,intArrayOf()
等。下面來看看arrayOf()
和intArrayOf()
函式的範例。
fun main(args: Array<String>){
val name = arrayOf<String>("Ajax","Prake","Michel","Yiibai","Maxsu")
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("Array 1 => ")
for(element in myArray2){
println(element)
}
println("Array 2 => ")
for(element in myArray3){
println(element)
}
println("Array 3 => ")
for(element in myArray4){
println(element)
}
println("Array 4 => ")
for(element in myArray5){
println(element)
}
}
執行上面範例程式碼,得到以下結果 -
Ajax
Prake
Michel
Yiibai
Maxsu
Array 1 =>
1
10
4
6
15
Array 2 =>
5
10
20
12
15
Array 3 =>
1
10
4
Ajax
Prake
Array 4 =>
5
10
20
12
15
假設嘗試在索引位置插入一個大於陣列大小的元素時,會發生什麼? 它將丟擲一個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的陣列元素也使用索引範圍(minValue..maxValue
)或(maxValue..minvalue
)遍歷。 讓我們看一個使用範圍遍歷陣列的範例。
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