配列要素へのアクセスとインデックス
配列では複数の値を保管できるたま、値の保管場所も複数になります。この値を保管する場所のことを要素と呼びます。配列を作成するときに要素の数を指定して作成します。それぞれの要素にはインデックスと呼ばれる 0 から始まる番号が付けられており、インデックスを指定することで指定の要素へアクセスすることができます。ここではインデックスを指定して配列要素へアクセスし、要素に値を格納したり取り出したりする方法について解説します。
(Last modified: )
要素とインデックスについて
配列は複数の値を管理することができるため、値の保管場所も複数用意されます。この保管場所のことを配列では要素と呼びます。配列を作成すると、指定した要素の数だけ保管場所が連続で用意されます。
複数の要素の中で指定した要素に対して値を格納したり、格納した値を参照したりすることができますが、複数の要素を区別できるようにそれぞれの要素に対してインデックスと呼ばれる番号が割り当てられています。インデックスは 0 から始まり、 1, 2, ... と順番に要素に割り当てられます。
配列を宣言し、配列を作成したあと、配列の各要素は次のように表すことができます。
配列変数[インデックス]
変数に対するのと同じように要素に対した値を代入したり要素に格納されている値を参照することができます。
次のサンプルをみてください。
int[] num = new int[2]; // 要素に値を代入する num[0] = 10; num[1] = 8; // 要素に格納された値を参照する System.out.println(num[0]); // 10 System.out.println(num[1]); // 8
配列を作成したあと、配列の要素に対して値を代入し、そのあとで要素に格納した値を参照しています。
存在しないインデックスを指定した場合
インデックスは 0 から始まり順番に要素に割り当てられます。例えば要素の数が 3 だった場合は、インデックスは先頭の要素から順に 0, 1, 2 と割り当てられます。もし存在しないインデックスを指定して要素に値を代入した場合、コンパイル時にはエラーとはなりませんがプログラムを実行したときにエラーとなります。
次のサンプルをみてください。
int[] num = new int[2]; num[2] = 14;
コンパイルの時にはエラーとなりませんが、プログラムを実行すると「Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 2 out of bounds for length 2」というエラーが発生します。
インデックスを変数で指定する
インデックスは int 型の整数の値です。数値を直接指定してもいいですが、 int 型の値を格納した変数を指定することもできます。変数を利用することで繰り返し処理を使って配列に格納された値を順に取り出すことが簡潔に記述できます。
次のサンプルをみてください。
int[] num = new int[3]; num[0] = 10; num[1] = 8; num[2] = 16; for (int i = 0; i < 3; i++){ System.out.println(num[i]); }
3 つの要素にそれぞれ格納した値を、 for 文を使って順番にインデックスを指定して要素から値を参照し画面に表示しています。このような使い方ができる点が配列のメリットです。
それでは簡単なサンプルプログラムを作って試してみます。テキストエディタで次のように記述したあと、 JSample4-1.java という名前で保存します。
class JSample4_1{ public static void main(String[] args){ int[] num = new int[4]; num[0] = 10; num[1] = 8; num[2] = 16; num[3] = 5; for (int i = 0; i < 4; i++){ System.out.println("num[" + i + "] = " + num[i]); } } }
コンパイルを行います。
javac -encoding UTF-8 JSample4_1.java
その後で、次のように実行してください。
java JSample4_1
int 型の配列を宣言し、 4 つの要素を持つ配列を作成しました。配列のそれぞれの要素に対して数値を代入したあと、 for 文を使って順に取り出して画面に表示しています。
-- --
インデックスを指定して配列要素へアクセスし、要素に値を格納したり取り出したりする方法について解説しました。
( Written by Tatsuo Ikura )
著者 / TATSUO IKURA
これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。