【Java】配列の宣言方法まとめ|初心者が混乱しやすい書き方の違いをやさしく解説

Java入門・実践
スポンサーリンク
スポンサーリンク

はじめに

Java の配列は、
「同じ型のデータをまとめて扱う」 ときに使う基本構文です。

ただし、宣言方法が複数あるため、

  • int[] aint a[] の違いは?
  • 宣言と初期化を同時に書く方法は?
  • どれが実務でよく使われる?

と迷いやすいポイントでもあります。

この記事では、やさしく・実務寄りに
配列の宣言方法のバリエーションを整理していきます。


配列の宣言方法は大きく2種類

① 推奨:型の後ろに [] をつける(Java で一般的)

Java
int[] numbers;
String[] names;
boolean[] flags;

特徴

  • Java ではこの書き方が最も一般的
  • 「この型の配列」という意味が明確
  • チーム開発でも読みやすい

② 非推奨:変数名の後ろに [] をつける(C言語風)

Java
int numbers[];
String names[];
boolean flags[];

特徴

  • Java でも使えるが、あまり推奨されない
  • C言語の名残で、Java では読みづらい
  • 複数変数を宣言するときに誤解を生む

2つの書き方の違いが問題になる例

Java
int a[], b; 

これはどう解釈される?

  • a → int の配列
  • b → int の変数(配列ではない)

初心者が混乱しやすいポイント。

推奨スタイルなら誤解がない

Java
int[] a, b; // 両方とも配列

宣言と初期化を同時に行うバリエーション

① 要素数だけ指定する

Java
int[] numbers = new int[3];

② 値をまとめて初期化(最もよく使う)

Java
int[] numbers = { 1, 2, 3 };
String[] names = { "Alice", "Bob" };

③ new を使った完全版

Java
int[] numbers = new int[] { 1, 2, 3 };

メソッドに配列を渡すときなどに使うことがある。

④ 宣言と初期化を分ける場合の注意点

Java
int[] numbers;
numbers = new int[] { 1, 2, 3 }; // OK

ただしこれは NG:

Java
int[] numbers;
numbers = { 1, 2, 3 }; // エラー

{} の省略形は宣言と同時のときだけ使える。


多次元配列の宣言方法

推奨

Java
int[][] matrix;

非推奨(混乱しやすい)

Java
int matrix[][];
int[] matrix[];

多次元配列は特に読みづらくなるため、
型の後ろにまとめて [] をつける のが実務では基本。


よくあるミスと注意点

ミス①:複数変数を宣言して混乱する

Java
int a[], b; // b は配列ではない

ミス②:宣言と初期化を分けて {} を使う

Java
int[] a;
a = {1, 2, 3}; // エラー

ミス③:多次元配列の [] の位置がバラバラ

Java
int[] a[], b; // 読みづらい

実務での推奨スタイル

一貫して「型の後ろに []」をつける

Java
int[] a;
String[] names;
boolean[] flags;

複数変数を宣言するときも読みやすい

Java
int[] a, b, c;

多次元配列も統一できる

Java
int[][] matrix;

まとめ

配列の宣言方法は2種類

  • 推奨:int[] a;
  • 非推奨:int a[];

宣言と初期化のバリエーション

  • new int[3]
  • {1, 2, 3}(宣言と同時のみ)
  • new int[]{1, 2, 3}

実務では「型の後ろに []」が基本

  • 読みやすい
  • 誤解がない
  • 多次元配列でも統一できる

decopon
decopon

配列の宣言方法は、 「どれも正しいけれど、読みやすさが大事」 という視点を持つだけで一気に理解が深まります。特にチーム開発では、 型の後ろに [] をつけるスタイル が圧倒的に読みやすく、 あなたのコードの“やさしさ”にもつながります。あなたの学びが、次のステップにつながりますように。

moco
moco

配列の書き方はいろいろあるけど、
“型の後ろに []” がいちばんスッキリ読むことができるよ。

コメント

タイトルとURLをコピーしました