【Java】配列の[]はどこに書くべき?

Javaで配列を宣言する際に、「[](角括弧)」を型名の後ろに書くのか、変数名の後ろに書くのかで迷ったことはありませんか?
どちらもコンパイルは通りますが、どちらが推奨される書き方なのかなぜその書き方が好まれるのかについて、本記事で詳しく解説します。

目次

配列の基本構文:どちらも文法的には正しい

Javaでは以下のように、配列の角括弧 [] を型名の後ろにも変数名の後ろにも書くことができます。

int[] numbers1;   // 型名の後ろに []
int numbers2[];   // 変数名の後ろに []

この2つは文法的にはどちらも正しく、同じ意味を持ちます。Javaコンパイラにとっては等価です。しかし、可読性や保守性、チーム開発の観点からは、どちらか一方に統一した方が望ましいとされています。

推奨されるのは「型名の後ろ」に書くスタイル

理由1:可読性が高い

int[] numbers;

このように書くことで、「numbersint の配列である」という情報が明確になります。int という型に対して [] がついていることから、配列の型であることが直感的に伝わるのです。

一方、以下のように書いた場合、

int numbers[];

C言語やC++のスタイルに近いため、Javaの文法に不慣れな読者やチームメンバーにとっては混乱を招く可能性があります。

理由2:複数変数を宣言するときに明確

int[] a, b; // aもbもintの配列
int a[], b; // aは配列だが、bはint型(配列ではない)

変数名の後ろに [] を書くスタイルだと、同じ行で複数の変数を宣言したときに、配列かどうかが変数ごとに異なってしまうため、可読性が著しく下がります。

理由3:公式スタイルガイドも推奨

GoogleのJavaスタイルガイドでは、以下のように明記されています。

4.8.3.2 No C-style array declarations

The square brackets form a part of the type, not the variable: String[] args, not String args[].

また、Java言語仕様(Java Language Specification)においても、型の一部として [] を扱うことが推奨されています。これはJavaの設計思想に則ったスタイルであり、より公式に近い書き方といえるでしょう。

実務での運用にも「型名の後ろ」が有利

現場の開発では、以下のような理由から「型名の後ろに []」を置くスタイルが圧倒的に好まれています。

  • コードレビュー時に意図が読み取りやすい
  • コーディング規約に準拠しやすい
  • 新人や外部メンバーにも理解しやすい
  • チームで統一しやすい

実際、企業やOSSプロジェクトでもこのスタイルが多く採用されており、現代Java開発のデファクトスタンダードといえるでしょう。

よくある質問(FAQ)

なぜJavaは両方の書き方を許しているのですか?

JavaはもともとC/C++に親しんだ開発者が移行しやすいように設計されており、int numbers[]; というC風の構文を許容しています。ただし、これは互換性のための配慮であり、推奨される書き方ではありません

複数次元配列はどう書くべきですか?
int[][] matrix;      // 推奨
int matrix[][];      // 非推奨

このように、多次元配列でも型名の直後に複数の [] を付ける書き方が推奨されます。

まとめ:型名の後ろに書くのがベストプラクティス

Javaでは配列の宣言時に、[] を型名の後ろにも変数名の後ろにも書けますが、可読性・保守性・スタイルガイドの観点から「型名の後ろに [] を書く」ことが推奨されます。

// ✅ 推奨される書き方
String[] names;
int[] scores;

コードの品質を高め、チーム開発でも混乱を避けるために、自分自身やプロジェクト全体でスタイルを統一しましょう。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次