Kotlin - 2次元配列宣言、初期化方法

2次元配列を宣言と特定の値に初期化する方法を紹介します。

1. 2次元配列宣言

arrayOf()で1次元配列を宣言でき、arrayOf()内にarrayOf()オブジェクトを追加して2次元配列を宣言できます。

fun main() {

    val arr = arrayOf(
        arrayOf(1, 2, 3),
        arrayOf(4, 5, 6),
        arrayOf(7, 8, 9),
    )

    for (row in arr) {
        println(row.contentToString())
    }
}

Output:

[1, 2, 3]
[4, 5, 6]
[7, 8, 9]

1.1 特定の値で配列を初期化する

Array(size) { value } は size サイズの配列として宣言し、 value で初期化します。

以下のように、特定の値で初期化された2次元配列を宣言できます。

fun main() {

    val arr = Array(3) { Array(3){0} }

    for (row in arr) {
        println(row.contentToString())
    }
}

Output:

[0, 0, 0]
[0, 0, 0]
[0, 0, 0]

2. Lambdaで初期値を設定する

Array() は引数として Lambda を渡すことができ、 Lambda から返される値が配列の初期値になります。

以下の例では、 iは配列のインデックスであり、特定の値を返すように実装して配列を初期化できます。

fun main() {

    val arr = Array(3) { Array(3){ i -> i * 10 } }

    for (row in arr) {
        println(row.contentToString())
    }
}

Output:

[0, 10, 20]
[0, 10, 20]
[0, 10, 20]

3. for文で2次元配列巡回

以下のように、2重forループで2次元配列を巡回できます。

fun main() {

    val arr = arrayOf(
        arrayOf(1, 2, 3),
        arrayOf(4, 5, 6),
        arrayOf(7, 8, 9),
    )

    for (i in arr.indices) {
        val row = arr[i];
        for (j in row.indices) {
            val value = arr[i][j]
            print("$value ")
        }
        println()
    }
}

Output:

1 2 3
4 5 6
7 8 9
codechachaCopyright ©2019 codechacha