Java で文字列配列を初期化する方法

Hassan Saeed 2023年10月12日
  1. Java で配列をデフォルト値に初期化する
  2. Java で配列を直接値に初期化する
  3. Java で Stream を使って配列を値に初期化する
Java で文字列配列を初期化する方法

このチュートリアルでは、Java で文字列配列を初期化する方法を紹介します。

Java の配列は固定長なので、配列を宣言して初期化し、要素に適切なメモリストレージを割り当てる必要があります。配列を宣言するだけだと、要素に割り当てられたメモリがなく、配列の任意のインデックスに値を代入しようとするとエラーになります。

Java で配列をデフォルト値に初期化する

以下の例は、Java で文字列配列を初期化する方法を示しています。これは、すべてのインデックスにデフォルト値 null を含む、指定された長さの配列を作成します。

public class MyClass {
  public static void main(String args[]) {
    String[] myArr;
    myArr = new String[5];
    myArr[0] = "First";

    for (int i = 0; i < myArr.length; i++) {
      System.out.println(myArr[i]);
    }
  }
}

出力:

First
null
null
null
null

最初のインデックスの値を "First" に再代入し、他のすべてのインデックスにはデフォルト値 null が格納されています。

配列を初期化せずに任意の配列インデックスに値を代入しようとするとどうなるか見てみましょう。

public class MyClass {
  public static void main(String args[]) {
    String[] myArr;
    myArr[0] = "First";
  }
}

出力:

/MyClass.java:4: error: variable myArr might not have been initialized
        myArr[0] = "First";
        ^
1 error

Java で配列を直接値に初期化する

配列の中に必要な値を入れて配列を初期化することもできます。この場合、配列の長さは初期化した要素数に固定されます。以下の例はこれを示しています。

public class MyClass {
  public static void main(String args[]) {
    String[] myArr = {"First", "Second"};

    for (int i = 0; i < myArr.length; i++) {
      System.out.println(myArr[i]);
    }
  }
}

出力:

First
Second

上記のコードブロックは、初期化で 2つの値を指定したので、長さ 2 の配列を作成しています。

Java で Stream を使って配列を値に初期化する

Java 8 以上では、Stream を利用して、与えられた値を持つ文字列の配列を初期化することができます。以下の例はこれを示しています。

import java.util.stream.*;
public class MyClass {
  public static void main(String args[]) {
    String[] strings = Stream.of("First", "Second", "Third").toArray(String[] ::new);
    for (int i = 0; i < strings.length; i++) {
      System.out.println(strings[i]);
    }
  }
}

出力:

First
Second
Third

関連記事 - Java Array