ホーム > Java > 第3章-4 配列

Java -配列-

配列は、同じデータ型の要素を集めて集合化したものです。

配列は、参照型の1つなので、各要素の値が直接変数に代入されることはありません。
このため、配列用の領域を別途作成する必要があります。
配列を参照する変数には配列のアドレス情報が代入されます。

配列の宣言

配列を利用するには、まず配列型変数を宣言します。
配列型変数は、参照型変数の1つです。

配列型変数の初期化

配列型変数がメンバ変数として宣言されている場合は、デフォルトでnullが代入されています。

配列型変数がローカル変数として宣言されている場合は、デフォルトで初期化されません。

また、暗黙的または明示的にnullが代入されている場合は、その配列の要素にアクセスしようとすると、実行時に NullPointerException例外が発生します。

配列の生成

配列を生成するには、new演算子を利用します。
要素数(インデックス数)には、その配列が扱う要素の数を指定します。
要素数は、一度指定したら変更することはできません。

配列の生成
new データ型[要素数];

new演算子によって配列のインスタンスが生成され、さらにそのインスタンスのアドレス情報が出力されます。
通常は、出力されたアドレス情報を配列型変数に代入します。

サンブル(int型の5つの要素を持つ配列の生成)

int a[] = new int[5];

2行に分けて記述する場合
int a[];
a = new int[5];

配列の要素数の指定は、通常int型の整数リテラル、int型の変数で指定しますが、 byte型、short型、char型の値や変数を利用することができます。

配列のデフォルト値

new 演算子を利用して配列を生成した場合、配列のそれぞれの要素には自動的にデフォルト値が代入され 初期化されます。

配列の要素の初期化は、配列型変数がメンバ変数であってもローカル変数であっても必ず行われます。

データ型 デフォルト値
byte 0
short 0
char '¥u0000'
int 0
long 0L
float 0.0F
double 0.0
boolean false
参照型 null

配列の要素の初期化

配列を生成する場合にnew演算子を使わず、直接、配列の要素の値を指定して初期化を行うことができます。

直接、配列の要素の値を指定することによって、要素数を指定する必要がなくなり、コンパイル時に自動的に 要素数が計算されます。

配列の初期化(配列要素の値を直接指定) 【 】 は省略可能
データ型 [] 配列型変数名 = { 【値1】【,値2】 【,値3】・・・};
      または
データ型 [] 変数配列名 = new データ型[] { 【値1】【,値2】 【,値3】・・・};
サンプル
int [] a = {10,20,30,40.50};
      と
int [] a = new int[] {10,20,30,40.50};       は同じことです

配列の要素数の取得

配列の要素数は、legthというメンバ変数を利用して取得できます。

配列の要素数の取得
配列型変数名.length

---メモ---
String型のlengthはメソッドなので length() とかっこが付きますが、 配列のlengthには付きません

配列の要素へのアクセス

配列の要素へアクセスする場合の書式
配列型変数[要素番号]
    最初の要素番号は0

2次元配列(多次元配列)の宣言(2次元目のすべてが同じ要素数の場合)

Javaでは、配列の要素に配列型変数を指定することができます。

2次元配列の宣言
データ型 [] [] 配列型変数名
2次元配列の要素の初期化【 】は省略可能
データ型 [] [] 配列型変数名 = {{【値1】【,値2】…},{【値3】【,値4】…} …}
      または
データ型 [] [] 配列型変数名 = new データ型 []{{【値1】【,値2】…},{【値3】【,値4】…} …}

2次元配列(多次元配列)の宣言(2次元目の要素数が固定ではない場合)

2次元の配列を作成する場合には、2次元目の配列の要素数を1次元目の配列の要素数ごとに変えることができます。

生成方法
  1. 1次元目の配列をnew演算子を利用して生成する。2次元目の配列の要素数を記述しない。
  2. 2次元目に相当する配列をnew演算子を利用して生成する。

参照型の配列

配列には基本データ型の値だけでなく、参照型のオブジェクトを格納することができます。
その際、格納するオブジェクトはnew演算子を利用してあらかじめ生成しておく必要があります。

参照型の配列の宣言、作成、初期化の方法は、基本データ型を基本的は、同じです。