IntArray 與 Array在 Kotlin 中
在本文中,我們將透過一個例子來展示 Kotlin 中 **IntArray** 和 **Array<Int>** 之間的區別。
Kotlin 中的 IntArray
**IntArray** 是 Kotlin 中的一個類,表示元素陣列。此類的每個例項都表示為一個整數陣列。對於此類的建構函式,您需要傳入陣列中需要的元素數量(大小)。
您可以如下所示例項化此類:
val myArray = IntArray(8)
預設情況下,建立的陣列的所有元素都將初始化為“0”。
示例
以下程式透過例項化 **IntArray** 類來建立一個整數陣列:
fun main(args: Array<String>) {
// Creating an object of the IntArray class
val myArray = IntArray(3)
// Populating the array
myArray[0] = 21;
myArray[1] = 10;
myArray[2] = 8;
// Converting the array to string
val res = myArray.joinToString()
println("Contents of the created array: "+res)
}輸出
執行上述程式後,將生成以下輸出:
Contents of the created array: 21, 10, 8
Kotlin 中的 Array<Int>
**Array<T>** 是 Kotlin 中的一個類,它表示一個數組(也是一個原生 Java 陣列)。它是一個泛型類,即您可以指定要建立的陣列的型別 **(T)**。與 **IntArray** 類類似,您需要傳入陣列中需要的元素數量(大小)。Kotlin 中的語句 **Array<Int>** 建立一個整數陣列。您可以使用此類建立整數陣列,如下所示:
val myArray = Array(3) {0}預設情況下,建立的陣列的所有元素都將初始化為“0”。
示例
以下程式透過例項化 Array 類來建立一個整數陣列:
fun main(args: Array<String>) {
// Creating an object of the Array class
val myArray = Array(3) {0}
// Populating the array
myArray[0] = 101;
myArray[1] = 330;
myArray[2] = 8;
// Converting the array to string
val res = myArray.joinToString()
println("Contents of the created array: "+res)
}輸出
執行上述程式後,將生成以下輸出:
Contents of the created array: 101, 330, 8
IntArray 與 Array<Int> 的比較
在內部,Array<Int> 建立一個 Integer 型別的陣列。這就像在 Java 中建立 Integer 類的例項一樣。使用此語法建立的值將被裝箱。而 IntArray 建立的陣列類似於 Java 的原始陣列。
考慮以下示例:
// Creating an integer array using the IntArray class
val myArray1 = IntArray(1)
// Creating an integer array using the Array class
val myArray2 = Array(3){1}您可以編譯此行並使用 javap 命令驗證其位元組碼,如下所示:
> kotlinc Test.kt > javap -c -p Testkt
對第一個語句執行此操作後,您可以觀察到內部建立了一個簡單的陣列。

而對於第二個語句,您可以觀察到該陣列已轉換為 **java.lang.Integer (Integer[])** 陣列。

廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP