Codegym University コースの一部としてのメンターによる講義の抜粋。フルコースにお申し込みください。


「こんにちは、アミーゴ!」

「やあ、エリー!」

「今日は、新しくて興味深いエンティティである配列について説明します。配列は、1 つだけではなく複数の値を格納できるデータ型です。」

配列 - 1

「まずは例え話から始めましょう。一軒家とアパートを比べてみましょう。普通の家は通常一家族だけで暮らしていますが、アパートは複数のアパートに分かれています。一軒家に住んでいる家族に手紙を送るには、あなたは家の固有の住所を示す必要があります。アパートに住んでいる家族に手紙を送るには、アパートの固有の住所とアパート番号を書く必要があります。」

「これまでのところ、すべてが明らかになっています。」

「配列変数は、アパートの建物の変数に似ています。値を 1 つだけではなく、多くの値を格納できます。このような変数には、アパート番号 (インデックス) を使用して参照できる複数のアパートメント (要素) があります。これを行うには、次のようにします。アクセスする配列要素のインデックスを、配列変数名の後の角括弧内に指定します。これは非常に簡単です。」

「そう願っています、エリー。」

「マンション変数 (配列変数) には、任意の型の要素を含めることができます。必要なのは、「TypeName 変数名」の代わりに「TypeName[] 変数名」と記述するだけです。

ここではいくつかの例を示します。

コード 説明
String[] list = new String[5];
要素Stringを含む配列を作成する5
System.out.println(list[0]);
System.out.println(list[1]);
System.out.println(list[2]);
System.out.println(list[3]);
System.out.println(list[4]);
5 つの「null」値が表示されます。

特定の配列要素の値にアクセスするには、角括弧と要素のインデックスを使用します。

int listCount = list.length;
listCountには、配列内の要素の数である値 5 が割り当てられますlist。配列の長さ(要素数)を格納します。
list.length
list[1] = "Mom";
String s = list[1];
オブジェクトを配列要素に割り当てるときは、要素のインデックスを角括弧で囲む必要があります。
for (int i = 0; i < list.length; i++)
{
     System.out.println(list[i]);
}
すべての配列要素の値を画面上に表示します。

"なんて面白い!"

「配列変数には追加の初期化が必要です。」

— ?

「通常の変数の場合は、それを宣言して、それにさまざまな値を代入するだけで済みます。配列の場合は、もう少し複雑になります。」

「最初に N 個の要素を保持するコンテナーを作成する必要があります。それから初めて、コンテナーへの値の配置を開始できます。」

コード 説明
String[] list = null;
配列変数がnulllistです。要素のコンテナへの参照のみを保存できます。コンテナは個別に作成する必要があります。
String[] list = new String[5];
要素のコンテナを作成し5、変数への参照を割り当てますlist。このコンテナには、0、1、2、3、4 の番号が付けられた 5 つのアパートメント (要素) があります。
String[] list = new String[1];
要素のコンテナを作成し1、変数への参照を割り当てますlist。このコンテナに何かを入れるには、次のように書きます。list[0] = "Yo!";
String[] list = new String[0];
要素のコンテナを作成し0、変数への参照を割り当てますlist。この容器には何も入れられません。

「なるほど。だんだんはっきりしてきましたね」

「配列に関する基本的な事実は次のとおりです。」

1)配列は多くの要素で構成されます。

2)特定の要素にアクセスするには、その番号 (インデックス) を指定します。

3)すべての要素は同じタイプです。

4)すべての要素の初期値は null です。プリミティブ型の配列の場合、初期値は 0、0.0 (小数の場合)、または false (ブール値の場合) です。これは、配列内にない初期化されていない変数の場合とまったく同じです。

5) String[] リストは単に変数を宣言するだけです。まず配列 (コンテナ) を作成し、その中に何かを入れてから、それを使用する必要があります (以下の例を参照)。

6)配列 (コンテナ) オブジェクトを作成するときは、その長さ、つまり要素の数を指定する必要があります。これは new TypeName[n] を使用して行います。

配列 - 2

ここではいくつかの例を示します。

コード 説明
String s;
String[] list;
snull と
list等しい null と等しい
list = new String[10];
int n = list.length;
このlist変数には、オブジェクトへの参照が格納されます。文字列の 10 要素配列、
nは10に相当します。
list = new String[0];
list要素配列が含まれるようになりました0。配列は存在しますが、文字列を格納できません。
list = null;
System.out.println(list[1]);
これにより例外 (実行時エラー) がスローされ、プログラムは異常終了します。nulllist参照が含まれています。
list = new String[10];
System.out.println(list[11]);
これにより、例外 (実行時エラー) がスローされます: 配列インデックスが範囲外です。

10 個の要素が含まれている場合list、有効なインデックスは 0、1、2、3、4、5、6、7、8、および 9 (合計 10 個のインデックス) です。