Primitive Arrays

IntArray, DoubleArray and Friends

Array<Int> stores boxed Integer objects. For numbers, Kotlin has special arrays that compile to Java primitive arrays (int[]), which are faster and use less memory.

Example

Primitive arrays have their own builder functions and default to zeros.

fun main() {
    val marks = intArrayOf(78, 91, 66)
    val prices = doubleArrayOf(99.0, 149.5)
    val flags = booleanArrayOf(true, false)
    val zeros = IntArray(4)
    val evens = IntArray(5) { (it + 1) * 2 }

    println(marks.contentToString())
    println(prices.contentToString())
    println(flags.contentToString())
    println(zeros.contentToString())
    println(evens.contentToString())
}

Output

[78, 91, 66]
[99.0, 149.5]
[true, false]
[0, 0, 0, 0]
[2, 4, 6, 8, 10]

Kotlin vs Java Arrays

KotlinJava
IntArray / intArrayOf(1, 2)int[] / new int[]{1, 2}
DoubleArraydouble[]
Array<Int>Integer[]
Array<String> / arrayOf("a")String[]
arr.sizearr.length