1. 概要

このクイックチュートリアルでは、Kotlinで配列を初期化する方法を見ていきます。

2. arrayOfライブラリメソッド

Kotlinには、提供された列挙値を指定されたタイプの配列に変換する組み込みのarrayOfメソッドがあります。

val strings = arrayOf("January", "February", "March")

3. プリミティブ配列

arrayOfメソッドをプリミティブ値で使用することもできます。

ただし、Kotlinはプリミティブ値を対応するオブジェクトラッパークラスに自動ボックス化するため、パフォーマンスに悪影響を及ぼします。 このオーバーヘッドを回避するために、Kotlinはプリミティブ配列を幅広くサポートしています。 次のタイプ専用のarrayOfメソッドがあります:double、float、long、int、char、short、byte、boolean。

専用のarrayOfメソッドを使用して、プリミティブint配列を簡単に初期化できます。

val integers = intArrayOf(1, 2, 3, 4)

4. インデックスによる後期初期化

インスタンス化時に配列の値を定義したくない場合があります。 この場合、null値の配列を作成できます。

インスタンス化後、配列のフィールドにアクセスして設定できます。 これを行うにはいくつかの方法がありますが、一般的な方法は、Kotlinのインデックスプロパティを使用することです。このプロパティは、配列の有効なインデックスの範囲を返します。 範囲を使用して、forループ内の配列の値にアクセスして設定できます。

このアプローチを使用して、配列を平方数で初期化してみましょう。

val array = arrayOfNulls<Number>(5)

for (i in array.indices) {
    array[i] = i * i
}

5. イニシャライザを使用した値の生成

プリミティブ配列とオブジェクト配列の両方に、2番目のパラメーターとして初期化関数を受け入れるコンストラクターがあります。 この初期化関数は、インデックスを入力パラメーターとして受け取り、関数を使用して適切な値に変換し、配列に挿入します。

1行で平方数の配列を初期化できます。

val generatedArray = IntArray(10) { i -> i * i }

前述のように、この種のコンストラクターはオブジェクト配列にも使用できます。

val generatedStringArray = Array(10) { i -> "Number of index: $i"  }

6. 結論

このチュートリアルでは、Kotlinで配列を初期化する方法を説明しました。 プリミティブ配列の幅広いサポートを発見しました。 また、初期化関数で配列コンストラクターを使用して簡潔なコードを作成する方法も観察しました。

いつものように、コードはGitHubから入手できます。