配列はArray<T>クラスであらわされ、C言語などの配列と同じように[]で各項目にアクセスできる。配列の生成と初期化を行う場合、arrayOfを使う。

    var nums:Array<Int> = arrayOf(1, 2, 3)
    println(nums[0])    // 1を表示
    println(nums[1])    // 2を表示
    println(nums[2])    // 3を表示
    println(nums.size)  // 項目数(3)を表示

    var strs:Array<String> = arrayOf("abc", "def")
    println(strs[0])    // "abc"を表示
    println(strs[1])    // "def"を表示

配列の初期値が数列の場合、次のようにラムダ式を使って配列の生成と初期化ができる。

    // 偶数で初期化した配列(5個分)
    var evens = Array(5, {i -> i * 2})

    println(evens[0])   // 0を表示
    println(evens[1])   // 2を表示
    println(evens[2])   // 4を表示
    println(evens[3])   // 6を表示
    println(evens[4])   // 8を表示

プリミティブ型の配列を作る場合はByteArray、ShortArray、IntArrayなどを使う。これは、ボクシングオーバーヘッドのない配列が生成されるが、Array<T>の継承ではない。

    var nums:IntArray = intArrayOf(1, 2, 3)
    
    println(nums[0])    // 1を表示
    println(nums[1])    // 2を表示
    println(nums[2])    // 3を表示
    println(nums.size)  // 項目数(3)を表示