【Java入門】配列の宣言・初期化をマスターして使いこなそう!

【Java入門】配列の宣言・初期化をマスターして使いこなそう!Java入門
スポンサーリンク

こんにちは!しーま(@s59shima)です。

いつもブログをご覧いただきありがとうございます。

今回は、こんな悩みや疑問のある方に向けて記事を書きました。

読者
読者

複数の値を格納できる方法(配列)について教えてほしい。

配列の使い方(宣言 / 初期化 / 要素への追加・確認など)について知りたい方にはおすすめの記事です。

配列の宣言

1つの変数に同じ種類のデータをいくつも格納できるのが「配列」の特徴です。

配列には、あらかじめ用意された保存場所が確保され、それを「要素」と言います。

配列を使用することで同じ処理を繰り返し実行する際に役に立ちます。

それでは、実際に配列を使用するための宣言について見ていきましょう!

配列の書式

型名[] 変数名 = new 型名[ 要素 ]

例)文字列(String)型の 変数名arrayで、要素が5個の場合

String[] array = String[5]

しーま
しーま

型の指定は、文字列以外(数値など)も可能です!

データ型の種類を確認したい場合、下記の記事も参考にどうぞ。

配列の初期化

配列は要素数が固定されたデータ構造です。

そのため、配列の宣言(※上記【配列の書式】)時に要素数を指定する必要がありましたね。

実は、宣言と同時に要素の値を初期化する事も可能なのです。

つまり、配列を作成するには3つのパターンがあります。

1.宣言のみ

String[] array = new String [ 5 ]

2.各要素の初期化

String[] array = { “Java”, “Python”, “Ruby” }

3.宣言と初期化を同時に

String[] array = new String[] { “Java”, “Python”, “Ruby” }

1.宣言のみ】は、代入する値が決まっていない場合に有効です。

2.各要素の初期化】と【3.宣言と初期化を同時に】は代入する値が決まっている場合に有効です。

以下のような初期化だとコンパイルエラーになりますので、気をつけましょう!

型を省略する場合は、必ず宣言と同時にやらなければいけないことが分かりましたね。

String[] array;
array = { "Java", "Python", "Ruby" }; // <- NG

配列の宣言と初期化を分ける場合、下記のように型の指定が必要ですよ!

String[] array;
array = new String[] { "Java", "Python", "Ruby" }; // <- OK

要素を持たない配列の場合

要素を1つも持たない配列の場合は、どうでしょうか!?

こちらは、文法的には問題ないため、コンパイルエラーにはなりません。

int[] array1 = new int[0];
 // 問題なし
int[] array2 = new int[]{}; // 問題なし

配列の要素に追加

配列の要素に値を追加(代入)するやり方を見ていきましょう!

例えば、上記【1.宣言のみ】だと要素数は指定していますが、中身はありませんよね。

要素に値を追加してみましょう。

String[] array = new String [ 5 ];
array[0] = "Java";
array[1] = "Python";
array[2] = "Ruby";
array[3] = "Kotlin";
array[4] = "Swift";

要素番号を指定して値を追加できます。

しーま
しーま

要素番号はゼロからスタートです。イチからではないのでご注意を!

もし、指定した要素数以上に格納しようとすると、コンパイルエラーになりますので気をつけましょう!

String[] array = new String [ 5 ];
array[0] = "Java";
array[1] = "Python";
array[2] = "Ruby";
array[3] = "Kotlin";
array[4] = "Swift";
array[5] = "Perl";  // <- NG 指定した要素数以上のため

配列の要素は後から変更できない

下記のように宣言した場合、要素数は5つです。

String[] array = String[5]

一度宣言した配列の要素は後から変更することができません。

そのため、要素数が決まっていない場合は、List型がおすすめです。

やむを得ず、配列の追加が必要な場合はArraysクラスのcopyOfメソッドが有効です。

しかし、多用しすぎると、可読性や保守性にも影響します。

使用する場合は最小限に抑えましょう(^_^;)

配列の要素数を確認

要素数を確認したい場合は【配列の変数名.length】で取得できます。

String[] array = String[5];
System.out.println( array.length ); // 実行結果 -> 5

lengthで要素数を取得できることで、配列のループ処理などでミスを減らすことができますよね。

String[] array = String[5];
for ( int i = 0; i < array.length; i++ ) { // lengthを使って配列の要素分、繰り返し処理が可能
  System.out.println( array[i] );
}
しーま
しーま

ここで1つ注意点です。

【配列のlength】と【オブジェクトのlength()】は違う

Stringクラスにも、文字列の長さを確認するために、lengthメソッドが用意されています。

配列の場合、lengthメソッドではないので、lengthの後ろにカッコ( length() )は付けないように気をつけましょう!

本記事のまとめ

今回は、配列の宣言・初期化使用方法について解説しました。

最後まで読んでいただきありがとうございます(*^-^*)

本記事をまとめると以下の通りです。

配列の宣言・初期化方法は3つ

  • 宣言のみ
    • String[] array = new String [ 5 ]
  • 各要素の初期化
    • String[] array = { “Java”, “Python”, “Ruby” }
  • 宣言と初期化を同時に
    • String[] array = new String[] { “Java”, “Python”, “Ruby” }

配列の要素数を変更するには

ArraysクラスのcopyOfメソッドが有効

配列の長さを確認すには

配列の変数名.length

おすすめ記事

Javaプログラミングをもう一度本格的に勉強したいっ!」という方へ

逆に、「Javaプログラミング以外を本格的に勉強したいっ!」という方へ

Javaプログラミングスキルを証明してみませんか!?

IT系フリーランス専門エージェントサービス第1位のMidWorksは業界トップクラスの低マージンで多くのエンジニアから選ばれています!!

Javaスキルで悩んでいる方必見!本気で学習できる環境を探してみよう!
詳細はこちら
Javaスキルで悩んでいる方必見!本気で学習できる環境を探してみよう!
詳細はこちら
タイトルとURLをコピーしました