
Java入門|配列のしくみと使い方
たくさんのデータも、配列を使えばすっきり整理できる
Javaでプログラムを書いていると、同じ種類のデータをたくさんまとめて扱いたい場面がよく出てきます。たとえば、クラス全員のテストの点数、1週間の気温、12か月分の売上、ゲームのプレイヤーごとのスコアなどです。
こうしたデータを1つずつ別の変数で管理しようとすると、変数の数がどんどん増えてしまい、コードが見づらくなったり、処理を書くのが大変になったりします。そこで活躍するのが配列です。
配列は、同じ型のデータをひとまとめにして扱える仕組みです。Javaの学習ではとても大切な基本機能の1つで、これを理解すると、たくさんの値を効率よく処理できるようになります。ここでは、配列とはどんなものなのか、なぜ便利なのか、どのように使うのかを、イメージしやすい形でていねいに見ていきます。
たくさんの値を1つずつ変数で管理するとどうなるのか
まずは、配列を使わない場合を考えてみましょう。たとえば50人分のテストの点数を扱いたいとします。
int test1 = 80;
int test2 = 60;
int test3 = 22;
...
int test50 = 35;このように書くことはできますが、実際にはかなり大変です。
変数の数が多くなると、次のような問題が出てきます。
| 問題点 | 内容 |
|---|---|
| コードが長くなる | 同じような宣言が大量に並び、見づらくなる |
| ミスが起きやすい | test17 と test18 を取り違えるなどのミスが起こりやすい |
| 処理を書きにくい | 合計や平均を求めるときに、1つずつ書く必要がある |
| 管理しにくい | 人数が増えたり減ったりしたときに修正が面倒になる |
たとえば、50人分の点数の合計を出そうとすると、配列を使わない場合はかなり面倒です。
int total = test1 + test2 + test3 + ... + test50;このような書き方は現実的ではありません。ここで、同じ型の値をまとめて管理できる配列がとても便利になります。
配列とは何か
配列は、同じ型の値を複数まとめて記憶するための仕組みです。
ふつうの変数は、1つの名前に対して1つの値を入れるイメージでした。たとえば、score という変数に 80 を入れる、という形です。
int score = 80;これに対して配列は、1つの配列名の中に、複数の値を並べて持つことができます。
たとえば、5人分の点数を1つにまとめると、次のようなイメージになります。
| 入れ物の名前 | 中に入る値 |
|---|---|
| scores | 80, 60, 22, 90, 35 |
つまり、配列は「同じ種類のデータを並べて保管できる特別な入れ物」と考えるとわかりやすいです。
配列を身近なイメージで考えてみよう
配列は、同じ形の引き出しが横にずらっと並んでいる棚のようなものです。
それぞれの引き出しには1つずつ値を入れることができます。
たとえば、点数を入れる棚を考えると、こんなイメージです。
| 位置 | 入っている値 |
|---|---|
| 0 | 80 |
| 1 | 60 |
| 2 | 22 |
| 3 | 90 |
| 4 | 35 |
ここで大切なのは、配列の中の1つ1つの場所には番号が付いているということです。
この番号を添字と呼びます。
Javaの配列では、最初の番号は 1 ではなく 0 から始まります。
この点は最初につまずきやすいので、しっかり覚えておきたいポイントです。
配列が便利な理由
配列の便利さは、単に値をまとめて保存できるだけではありません。まとめて扱えるからこそ、繰り返し処理ととても相性がよいのです。
たとえば、配列を使えば、合計や平均の計算、最大値の探索、全員分の表示などを、すっきりと書けるようになります。
配列を使うメリットを整理すると、次のようになります。
| メリット | 説明 |
|---|---|
| 同じ型の値をまとめられる | 点数、売上、気温などを一括で管理できる |
| 名前を大量に作らなくてよい | test1、test2、test3 のように増やす必要がない |
| 繰り返し処理と組み合わせやすい | for文を使って順番に処理しやすい |
| コードが読みやすくなる | データのまとまりがはっきりする |
| 保守しやすい | データ数の変更にも対応しやすい |
変数と配列の違い
変数と配列はどちらも値を記憶するための仕組みですが、使い方にははっきりした違いがあります。
| 項目 | 変数 | 配列 |
|---|---|---|
| 保存できる値の数 | 1つ | 複数 |
| 向いている場面 | 単独の値を扱うとき | 同じ型の値をまとめて扱うとき |
| 例 | 年齢、身長、合計点 | 生徒全員の点数、12か月分の売上 |
| 取り出し方 | 変数名で取り出す | 配列名と添字で取り出す |
たとえば、1人分の点数なら変数でも十分です。
int score = 80;でも、50人分の点数なら配列のほうが自然です。
int[] scores = new int[50];このように、1つだけの値なのか、同じ種類の値が複数あるのかで使い分けることが大切です。
配列はどんな場面で使われるのか
配列は、同じ種類のデータが複数ある場面でよく使われます。実際のプログラムでは、かなり多くの場面で登場します。
たとえば、次のようなケースです。
| 例 | 配列に入れるもの |
|---|---|
| テストの点数管理 | 生徒ごとの点数 |
| 売上データ | 月ごとの売上金額 |
| 気温の記録 | 1週間や1か月の気温 |
| ゲーム | プレイヤーごとの得点 |
| アンケート集計 | 回答結果の数値 |
たとえば、1週間の気温を扱うならこのように考えられます。
int[] temperature = {18, 20, 19, 22, 21, 17, 16};この1行だけで、7日分のデータをまとまりとして表現できます。とてもすっきりしていますね。
配列は同じ型だけをまとめる
配列で特に大切なのは、同じ型の値だけをまとめて記憶するという点です。
たとえば、整数を入れる配列には整数だけを入れます。
int[] scores = {80, 60, 22, 90, 35};文字列を入れる配列なら、文字列だけを入れます。
String[] names = {"佐藤", "鈴木", "高橋"};このように、1つの配列の中に異なる型を自由に混ぜることはできません。
たとえば、次のような形は配列には向いていません。
- 名前
- 年齢
- 身長
- 住所
これらは種類が違うデータです。こうした異なる性質の情報をひとまとめに扱いたい場合は、あとで学ぶクラスのほうが適しています。
つまり、配列は同じ型の値を横に並べて扱うのが得意です。
異なる情報を1人分としてまとめたいときはクラスが向いています。
まずは配列を使う目的をしっかり押さえよう
配列の学習では、構文を覚える前に、なぜ配列を使うのかを理解しておくことがとても大切です。
配列の目的は、同じ種類のデータをまとめて管理し、効率よく処理できるようにすることです。
たとえば、次のように考えるとわかりやすいです。
- 1人の点数を扱うなら変数
- 30人分の点数を扱うなら配列
- 1人の名前、年齢、住所をまとめるならクラス
この使い分けが見えてくると、Javaのプログラムがぐっと整理しやすくなります。

この図では、1つの配列の中に5つの値が並んでいる様子を表しています。
上に書かれている 0、1、2、3、4 は添字で、それぞれの場所を区別するための番号です。
たとえば、
- 添字 0 の場所には 80
- 添字 1 の場所には 60
- 添字 2 の場所には 22
が入っています。
このように、配列は値をただ並べるだけではなく、位置番号とセットで管理しているのが大きな特徴です。
この考え方は、このあと配列の要素にアクセスするときにとても重要になります。
配列を学ぶと、この先のJavaが理解しやすくなる
配列は、Javaの基本文法の中でもかなり重要な内容です。なぜなら、配列を理解すると、繰り返し処理との組み合わせ、データの集まりの扱い方、より実践的なプログラムの書き方が見えてくるからです。
たとえば、今後は次のような処理にもつながっていきます。
- 配列のすべての値を順番に表示する
- 合計や平均を計算する
- 最大値や最小値を探す
- 条件に合う値だけを調べる
こうした処理は、Javaらしいプログラムを書くうえでとても大切です。配列は、その土台になる考え方といえます。
配列は「たくさんの同じ種類のデータ」を扱うための基本機能
ここまで見てきたように、配列は、同じ型の値をひとまとめにして管理するための仕組みです。
たくさんのデータを扱うプログラムでは、変数を1つずつ増やしていくよりも、配列を使ったほうがずっと整理しやすくなります。
特に、テストの点数のように、同じ種類のデータがたくさん並ぶ場面では、配列はとても自然で使いやすい仕組みです。Javaを学ぶうえでは、まずこの基本イメージをしっかり持っておくことが大切です。
このあと配列の宣言、要素の確保、初期化、添字の使い方、配列の長さなどを学んでいくと、配列を実際のコードの中で使いこなせるようになっていきます。まずは、配列とは「同じ型の値をまとめて記憶する仕組み」である、という土台をしっかり押さえておきましょう。
