Kotlin

Kotlin 多次元配列の生成方法

Javaだと下のように多次元配列は生成するわけですが、、

int[][] array = new int[10][10]

Kotlinではこう書けば生成できる

val array = Array(10, {arrayOfNulls<Int>(10)})

解説

  • 多次元配列の生成はArray()を使うのがいいのかなぁと思います
Array(size: Int, init: (Int) -> T)
  • Arrayのコンストラクタは第一引数に配列のサイズ
  • 第二引数に要素を指定する
  • 要素はIntを引数にとって要素を返す関数を指定する
  • initの引数Intには要素分のインデックスが入る
Array(10, { index ->
    index // 0から9が順々に
})

// もちろんitで参照できる
Array(10, {it})

// 要素を全て2で初期化する例
Array(10, {index ->
    2
})

// 上はindexを使ってないので省略する
Array(10, {2}})
  • 以上を踏まえて、要素に配列を指定してあげれば多次元配列になる
// 0−9で初期化された2次元配列
Array(10, {Array(10, {it})})
  • 型を指定してnullで初期化する配列を宣言する場合は下でもおk
// Boolean[10][10]
Array(10, { arrayOfNulls<Boolean>(10)})

まとめ

配列生成するのに関数を引数に取るのはなかなかビギナー殺し感ある。便利だけど。