この記事の要点
- 配列とは、同じ型のデータをいくつもまとめて管理するための仕組み
- あらかじめ配列に格納する要素が決まっている場合は、初期化子{}を使う
- 配列では、先頭要素を0番目として数える
Javaの配列は、他のデータ型とは少し異なる構文が存在します。
配列の大きさを求めるにはlengthを使う、初期化には{}を使うなど、配列を使いこなすために必要な知識があるため、整理して覚えることが重要です。
当記事を読めば、配列の基本的な使い方から、やや応用的な内容までまとめて理解できます。
また、二次元配列、連想配列(Map)など、配列の種類についても解説しています。
目次
Javaでの「配列」とは
配列とは、同じ型のデータをいくつもまとめて管理するための仕組みです。
例えば、int型のデータを3つ格納できる配列を作りたい場合、以下のようになります。
int[] array = new int[3];
配列の種類
配列には以下のような種類があります。
二次元配列
二次元配列は、配列の中に配列を格納しているイメージです。
例えば電車の座席は、「1両目の前から3番目の席」のように表現できます。
このようなデータを取り扱うために使います。
要素数が10の配列を3つ格納できる配列を作る場合、以下のようになります。
int[][] array = new int[3][10];
要素の代入、参照は以下のようになります。
array[0][3] = 10; // 0番目の配列の、3番目に10を格納する int num = array[0][3]; // 0番目の配列の、3番目の要素を取得する
連想配列
連想配列とは、添字に数字以外の型も使える配列です。
JavaではMap(マップ)と呼ばれます。
配列とは使い方が異なるため、整理して理解しましょう。
Map<String, Integer> map = new HashMap<>(); // 添字に文字列を使うMapを作成 map.put("apple", 100); // "apple"と100を関連づける int num = map.get("apple"); // "apple"に関連づいた値(100)を取得
配列の基本的な使い方
配列の基本的な使い方をご紹介します。
配列型変数の宣言
配列型変数の宣言は、以下の2通りあります。
どちらを使っても問題ありません。
型名[] 変数名;
または
型名 変数名[];
配列の初期化
配列の初期化は、先ほどご紹介したnewを使う方法と、初期化子{}を使う方法があります。
あらかじめ配列に格納する要素が決まっている場合は、初期化子を使うとより簡潔に書けます。
// newを使う場合 int[] array1 = new int[3]; array1[0] = 0; array1[1] = 10; array1[2] = 20;
// 初期化子を使う場合 int[] array2 = {0, 10, 20};
要素の代入
配列に要素を代入するには、添字を使います。
添字とは、その要素が先頭から数えて何番目かを表す数字です。
先頭を0として数える点に注意してください。
具体的には、以下のようになります。
array[0] = 10; // 配列の0番目に10を代入する
要素の参照
配列から要素を取得する場合も添字を使います。
具体的には、以下のようになります。
int num = array[0] // 配列の0番目の要素を参照する
配列の大きさを取得
変数名.lengthの構文で、配列の大きさを取得できます。
int[] array = new int[3]; System.out.println(array.length); // 「3」が出力される
配列の応用的な使い方
基本的な使い方をマスターしたら、応用的な使い方にチャレンジしてみましょう。
for文で配列の大きさ分ループする
「配列の中から順番に全ての値を参照し、参照した値が特定の値の時のみ処理をする」といった操作はよく使われます。
for文と、配列の大きさを求めるlengthを併せて使うのがポイントです。
次のプログラムは、配列の中から偶数の値だけ画面に出力するプログラムです。
int[] array = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; for(int i = 0; i < array.length; i++){ int num = array[i]; if(num % 2 == 0){ System.out.println(num); } }
要素のソート
Javaの標準ライブラリであるArraysクラスのsortメソッドを使うと、配列の要素を並び替えることができます。
int[] array = {5, 2, 7, 3, 1, 9}; Arrays.sort(array); // {1, 2, 3, 5, 7, 9}に並び替えられる
配列からリストを作成
配列はメモリ消費量は少ないというメリットはありますが、決まった数しか要素を追加できない、要素の削除などの複雑な操作に向いていない、といったデメリットがあります。
そのような場合、ArraysクラスのasListメソッドを使ってリストを生成すると便利に扱えます。
ここでは、配列からリストを生成する方法をご紹介します。
String[] array = {"a", "b", "c"}; // 3つしか要素を格納できない配列 List<String> list = new ArrayList<>(Arrays.asList(array)); // asListメソッドを使って、配列をリストに変換 list.add("d"); // 4つ目の要素を追加できる list.remove(0); // 要素の削除も簡単
まとめ
Javaの配列は、他のデータ型と少し異なる構文を用いるため、しっかり理解する必要があります。
特にfor文と組み合わせて使う方法はよく使いますが、慣れが必要です。
何度も使っていくうちに自然に身についていくので、理解できなかったところは繰り返し練習してみてください。