Help us understand the problem. What is going on with this article?

Kotlin 多次元配列の生成方法

More than 1 year has passed since last update.

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)})

まとめ

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

yasukotelin
Android developer エディタのカラーテーマを作ったりもしています。
https://note.mu/yasukotelin
andfactory
Smartphone Idea Companyとして、人々の生活に「&(アンド)」を届ける。
https://andfactory.co.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした