手を動かして学ぶ Java入門 (配列)
環境構築不要! ブラウザから直接コードを実行できます。
本記事では、Java の配列について学びます。
10分くらいで、さくっと終わる記事をめざしています。
シリーズ一覧
- シリーズ
- 手を動かして学ぶ Java入門 (Hello world 編)
- 手を動かして学ぶ Java入門 (数値と演算)
- 手を動かして学ぶ Java入門 (数値と変数)
- 手を動かして学ぶ Java入門 (コメントの書き方)
- 手を動かして学ぶ Java入門 (文と式の違い)
- 手を動かして学ぶ Java入門 (if文)
- 手を動かして学ぶ Java入門 (if-else文、if-elseif文)
- 手を動かして学ぶ Java入門 (文字列の連結)
- 手を動かして学ぶ Java入門 (while文)
- 手を動かして学ぶ Java入門 (break文)
- 手を動かして学ぶ Java入門 (continue文)
- 手を動かして学ぶ Java入門 (for文)
- 手を動かして学ぶ Java入門 (クラスの超基本)
- 手を動かして学ぶ Java入門 (クラス・メソッド)
- 手を動かして学ぶ Java入門 (クラス・フィールド)
- 手を動かして学ぶ Java入門 (クラス・コンストラクタ)
- 手を動かして学ぶ Java入門 (文字列クラス)
- 手を動かして学ぶ Java入門 (静的メソッド)
- 手を動かして学ぶ Java入門 (静的フィールド)
- 手を動かして学ぶ Java入門 (定数の定義)
- 手を動かして学ぶ Java入門 (クラス継承の超基本)
- 手を動かして学ぶ Java入門 (メソッドのオーバーライド)
- 手を動かして学ぶ Java入門 (メソッドのオーバーロード)
- 手を動かして学ぶ Java入門 (thisキーワード)
- 手を動かして学ぶ Java入門 (superキーワード)
- 手を動かして学ぶ Java入門 (抽象クラスと抽象メソッド)
- 手を動かして学ぶ Java入門 (インタフェースの基本)
- 手を動かして学ぶ Java入門 (Objectクラス)
- 手を動かして学ぶ Java入門 (プリミティブ型)
- 手を動かして学ぶ Java入門 (配列)
はじめに
この記事は paiza.IO の「Online Java compiler」を利用しています。
2025/5/27 現在、上記環境の Java バージョンは 18 です。(paiza.IO利用ガイド)
実行したコードは paiza.IO で保存および公開されることがあります。
そのため、個人情報などの機密性の高い情報は、コードとして入力しないようにご注意ください。
詳細は paiza.IO の利用規約およびプライバシーポリシーをご確認ください。
配列とは
複数の要素(値)の集合を格納・管理するのに用いられるデータ構造が配列である。数学のベクトルおよび行列に近い概念であり、実際にベクトルおよび行列をプログラム上で表現する場合に配列が使われることが多い。
配列とは、簡単にいうと…
- たくさんの 変数 を1つにまとめたもの
です。
変数は 以前の記事 でも学びましたね。
例えば、次のように宣言します。
int a1;
int a2;
変数の数が少ないのならこれでよいかもしれません。
ただ、変数の数が多くなると宣言するだけで大変です。
例えば変数が 100個必要な場合…
int a1;
int a2;
int a3;
… 省略 …
int a100;
と書かなければなりません。
そんなときに使えるのが配列です。
100個の変数を持つ配列は次のように書きます。
int[] a = new int[100];
これで、100個の変数を持つ a という配列が生成できました。
簡単なコード例
それでは、実際に配列を使ってみましょう。
先ほどは 100個の例を出しましたが、今回は簡単な例ということで 3個にします。
int[] a = new int[3];
a[0] = 10;
a[1] = 20;
a[2] = 30;
for (int i = 0; i < 3; i++) {
System.out.println(a[i]);
}
実際に動かして確認してみましょう。
コードは変更せずに、そのまま「実行(Ctrl-Enter)」ボタンを押してください。
(表示がおかしいときは「コードの再読み込み」ボタンを押してみてください)
いかがでしたでしょうか? 「出力」のところに
10
20
30
と表示されたら成功です。
配列の宣言とインスタンス生成
配列を使うには、通常の変数と同じように 宣言 する必要があります。
配列の宣言は、
- 配列で使う型 + [ ] + 任意の名前
となります。
int[] a = new int[3];
^^^^^^^ <--- 配列の宣言
上記の例では、int 型の変数を格納する a という名前の配列を宣言しました。
ただし、これだけでは配列はまだ使えません。
クラスと同じように new 演算子で配列のインスタンスを作成する必要があります。
インスタンスの生成は、
- new + 配列で使う型 + [ + 配列のサイズ + ]
となります。
int[] a = new int[3];
^^^^^^^^^^ <--- インスタンスの生成
上記の例では、サイズ3の int型配列のインスタンスを生成しました。
配列の各変数へアクセス
配列の各変数へアクセスするには、
- 配列名 + [ + インデックス + ]
とします。
(配列の各変数のことを、配列の 要素 とも呼びます。
本記事では、以降、要素 と表記します)
そしてインデックスは 0 ~ 配列のサイズ -1 になります。
つまり、サイズ3の配列のインデックスは 0 と 1 と 2 ですね。
0 から始まるのがポイントです。
それでは、配列の要素にアクセスする例を見てみましょう。
【配列の要素に値を代入する例】
a[0] = 10;
a[1] = 20;
a[2] = 30;
^^^^ <--- 配列の要素に値を代入
【配列の要素から値を取得する例】
for (int i = 0; i < 3; i++) {
System.out.println(a[i]);
^^^^ <--- 配列の要素から値を取得
}
配列は [ ] とインデックスが必要なだけで、使い方は通常の変数と変わりません。
通常の変数が理解できていれば、配列もそんなに難しくはないのかな、と思います。
補足
配列を初期値で生成
先ほどは new 演算子を使って配列のインスタンスを生成しました。
もし、初期値があらかじめ分かっている場合は、代わりに初期値を使ってインスタンスを生成することもできます。
初期値による配列の生成は、
- { + 初期値1 + 初期値2 + 初期値3 + ... }
となります。
例えば、次のように書けます。
int[] a = {10, 20, 30};
これは、
int[] a = new int[3];
a[0] = 10;
a[1] = 20;
a[2] = 30;
と書くのと同じ意味になります。
配列のサイズを取得
配列のサイズは length フィールドで取得できます。
int[] a1 = new int[5];
System.out.println(a1.length); // 5
int[] a2 = {10, 20, 30};
System.out.println(a2.length); // 3
応用問題
【問題】
まずは、下記のプログラムをそのまま「実行(Ctrl-Enter)」してみましょう。
「出力」には何も表示されなかったはずです。
これは print メソッドの中身が空だからです。
そこで問題です。
print メソッドに配列の要素を表示するコードを書き加えてください。
その結果、プログラムを実行したら、
aaa
bbb
ccc
と「出力」に表示されるようにしてください。
それでは、下のプログラムの print メソッドにコードを書き加えて「実行(Ctrl-Enter)」してみましょう。
(コードを書き換えてよいのは print メソッドの中身だけです)
(表示がおかしいときは「コードの再読み込み」ボタンを押してみてください)
無事に、
aaa
bbb
ccc
と出力されましたでしょうか?
もし解けなかった場合は、下記の回答例をご参照ください。
回答例
【コード】
public class Main {
public static void main(String[] args) {
String[] a1 = {"aaa"};
String[] a2 = {"bbb", "ccc"};
print(a1);
print(a2);
}
public static void print(String[] a) {
// ここにコードを追加してください。
for (int i = 0; i < a.length; i++) {
System.out.println(a[i]);
}
}
}
【出力】
aaa
bbb
ccc
まとめ
配列とは、簡単にいうと…
- たくさんの 変数 を1つにまとめたもの
です。
たくさんの変数を宣言する代わりに、配列ですっきりと宣言することができます。
ぜひ有効に活用したいですね!
関連記事
- シリーズ
- 手を動かして学ぶ Java入門 (Hello world 編)
- 手を動かして学ぶ Java入門 (数値と演算)
- 手を動かして学ぶ Java入門 (数値と変数)
- 手を動かして学ぶ Java入門 (コメントの書き方)
- 手を動かして学ぶ Java入門 (文と式の違い)
- 手を動かして学ぶ Java入門 (if文)
- 手を動かして学ぶ Java入門 (if-else文、if-elseif文)
- 手を動かして学ぶ Java入門 (文字列の連結)
- 手を動かして学ぶ Java入門 (while文)
- 手を動かして学ぶ Java入門 (break文)
- 手を動かして学ぶ Java入門 (continue文)
- 手を動かして学ぶ Java入門 (for文)
- 手を動かして学ぶ Java入門 (クラスの超基本)
- 手を動かして学ぶ Java入門 (クラス・メソッド)
- 手を動かして学ぶ Java入門 (クラス・フィールド)
- 手を動かして学ぶ Java入門 (クラス・コンストラクタ)
- 手を動かして学ぶ Java入門 (文字列クラス)
- 手を動かして学ぶ Java入門 (静的メソッド)
- 手を動かして学ぶ Java入門 (静的フィールド)
- 手を動かして学ぶ Java入門 (定数の定義)
- 手を動かして学ぶ Java入門 (クラス継承の超基本)
- 手を動かして学ぶ Java入門 (メソッドのオーバーライド)
- 手を動かして学ぶ Java入門 (メソッドのオーバーロード)
- 手を動かして学ぶ Java入門 (thisキーワード)
- 手を動かして学ぶ Java入門 (superキーワード)
- 手を動かして学ぶ Java入門 (抽象クラスと抽象メソッド)
- 手を動かして学ぶ Java入門 (インタフェースの基本)
- 手を動かして学ぶ Java入門 (Objectクラス)
- 手を動かして学ぶ Java入門 (プリミティブ型)
- 手を動かして学ぶ Java入門 (配列)