JavaA2Z

KAB-studio > プログラミング > JavaA2Z > 配列初期化子とは

配列初期化子

日本語 配列初期化子
英語 array initializer
ふりがな はいれつしょきかし
フリガナ ハイレツショキカシ

解説

配列初期化する式。
 
[] 変数= { 初期値, 初期値 };」もしくは「[] 変数= new []{ 初期値, 初期値 };」という形式で、配列インスタンスを作成し、同時に各要素初期化することができる。
この「{ 初期値, 初期値 }」の部分を「配列初期化子」と呼ぶ。
[] 変数= new [要素];」の形式と違い、各要素初期化を同時にうことができる。
 
配列初期化子は「{ 初期値, 初期値, ... }」という形式で、初期値要素数を指定する。
要素数の数だけ「初期値」をカンマで継なぎ指定する。この初期値の個数の要素数でインスタンスが作成される。
つまり「new [初期値の個数]」と同じとなる。
インスタンス作成後、各要素に指定した初期値初期化われる。
 
new [要素]」に比べ、各要素初期値を格納できる点で便利である。
だが、初期値が必要ない場合や、要素数が非常に大きい場合には使用しない方がプログラムが簡単になるだろう。

参考サイト

  • (参考サイトはありません)

(KAB-studioからのおしらせです)

サンプルプログラム(とか)サンプルを別ウィンドウで表示サンプルをクリップボードへコピー(WindowsでIEの場合のみ)

public class Sample
{
    public static void main( String[] args )
    {
        // int型配列の参照を作ります。
        //            これが配列初期化子です。
        //            ←             →
        int[] ints1 = { 100, 200, 300 };
        //               ↓  ↓   ↓ 
        //           ints[0] ↓  ints[2]
        //                ints[1] 
        // 上記の例では、int型配列(要素数3)のインスタンスを
        // 作成して、それぞれの要素に値を格納しています。

        // 0番目の要素を取得して出力します。
        int i = ints1[0];
        System.out.println( i );
        // 100

        // 要素数を出力します。
        System.out.println( ints1.length );
        // 3

        // このように、配列初期化子で指定した数の要素数を
        // 持つことになります。

        // 上記の例は、以下と同じです。
        int[] ints2 = new int[3];
        ints2[0] = 100;
        ints2[1] = 200;
        ints2[2] = 300;
        // 0番目の要素を取得して出力します。
        i = ints2[0];
        System.out.println( i );
        // 100

        // つまり、「配列のインスタンスの作成」と、
        // 「各要素の初期化」を同時に行っている、
        // というわけです。

        // 配列初期化子は「初期化子」なので、「配列型変数の初期化」
        // の時にしか使用できません。
        // ints2 = { 1000, 2000, 3000 };
        // コンパイルエラー:
        // 配列定数はイニシャライザーにおいてのみ使用可能です。
        // 要素の型が異なるとコンパイルエラーとなります。

        // int[] ints3 = { 100, 200, 300.0 };
        // コンパイルエラー:
        // 型の不一致: double から int には変換できません。

        // 多次元配列の場合、配列初期化子が入れ子となります。
        // int型の二次元配列を作ります。
        int[][] intsOfInts 
            = new int[][]
            { 
                  new int[]{ 10, 20, 30 }      // intsOfInts[0][0]~intsOfInts[0][2]
                , new int[]{ 100, 200, 300 }   // intsOfInts[1][0]~intsOfInts[1][2]
            };

        // 左側の添え字が「『intの配列』を入れる配列」、
        // 右側の添え字が『intの配列』になります。
        System.out.println( intsOfInts[0][0] );
        System.out.println( intsOfInts[0][1] );
        System.out.println( intsOfInts[0][2] );
        System.out.println( intsOfInts[1][0] );
        System.out.println( intsOfInts[1][1] );
        System.out.println( intsOfInts[1][2] );
        // 10
        // 20
        // 30
        // 100
        // 200
        // 300

        // 配列初期化子の前に、インスタンスの作成と同じ
        // 「new 型名[]」を記述することもできます。
        // ただし、その際「要素数」は指定しません。
        //                     これが配列初期化子です。
        //                     ←             →
        int[] ints4 = new int[]{ 100, 200, 300 };
        // 0番目の要素を取得して出力します。
        i = ints4[0];
        System.out.println( i );
        // 100

        // この形式で要素数を指定するとコンパイルエラー
        // となります。
        // int[] ints4 = new int[3]{ 100, 200, 300 };
        // コンパイルエラー:
        // 配列イニシャライザーが提供されているとき、ディメンション式を定義することはできません。
    }
}
public class Sample
{
    public static void main( String[] args )
    {
        // int型配列の参照を作ります。
        //            これが配列初期化子です。
        //            ←             →
        int[] ints1 = { 100, 200, 300 };
        //               ↓  ↓   ↓ 
        //           ints[0] ↓  ints[2]
        //                ints[1] 
        // 上記の例では、int型配列(要素数3)のインスタンスを
        // 作成して、それぞれの要素に値を格納しています。

        // 0番目の要素を取得して出力します。
        int i = ints1[0];
        System.out.println( i );
        // 100

        // 要素数を出力します。
        System.out.println( ints1.length );
        // 3

        // このように、配列初期化子で指定した数の要素数を
        // 持つことになります。

        // 上記の例は、以下と同じです。
        int[] ints2 = new int[3];
        ints2[0] = 100;
        ints2[1] = 200;
        ints2[2] = 300;
        // 0番目の要素を取得して出力します。
        i = ints2[0];
        System.out.println( i );
        // 100

        // つまり、「配列のインスタンスの作成」と、
        // 「各要素の初期化」を同時に行っている、
        // というわけです。

        // 配列初期化子は「初期化子」なので、「配列型変数の初期化」
        // の時にしか使用できません。
        // ints2 = { 1000, 2000, 3000 };
        // コンパイルエラー:
        // 配列定数はイニシャライザーにおいてのみ使用可能です。
        // 要素の型が異なるとコンパイルエラーとなります。

        // int[] ints3 = { 100, 200, 300.0 };
        // コンパイルエラー:
        // 型の不一致: double から int には変換できません。

        // 多次元配列の場合、配列初期化子が入れ子となります。
        // int型の二次元配列を作ります。
        int[][] intsOfInts 
            = new int[][]
            { 
                  new int[]{ 10, 20, 30 }      // intsOfInts[0][0]~intsOfInts[0][2]
                , new int[]{ 100, 200, 300 }   // intsOfInts[1][0]~intsOfInts[1][2]
            };

        // 左側の添え字が「『intの配列』を入れる配列」、
        // 右側の添え字が『intの配列』になります。
        System.out.println( intsOfInts[0][0] );
        System.out.println( intsOfInts[0][1] );
        System.out.println( intsOfInts[0][2] );
        System.out.println( intsOfInts[1][0] );
        System.out.println( intsOfInts[1][1] );
        System.out.println( intsOfInts[1][2] );
        // 10
        // 20
        // 30
        // 100
        // 200
        // 300

        // 配列初期化子の前に、インスタンスの作成と同じ
        // 「new 型名[]」を記述することもできます。
        // ただし、その際「要素数」は指定しません。
        //                     これが配列初期化子です。
        //                     ←             →
        int[] ints4 = new int[]{ 100, 200, 300 };
        // 0番目の要素を取得して出力します。
        i = ints4[0];
        System.out.println( i );
        // 100

        // この形式で要素数を指定するとコンパイルエラー
        // となります。
        // int[] ints4 = new int[3]{ 100, 200, 300 };
        // コンパイルエラー:
        // 配列イニシャライザーが提供されているとき、ディメンション式を定義することはできません。
    }
}

この単語を含むページ

「みだし」に含まれているページ

「解説」に含まれているページ

「サンプルプログラムとか」に含まれているページ

はてなブックマーク 詳細を表示 はてなブックマーク ブックマーク数
livedoorクリップ 詳細を表示 livedoorクリップ ブックマーク数
Yahoo!ブックマーク 詳細を表示 users
del.icio.us 登録する RSSに登録
サンプルを別ウィンドウで表示
サンプルをクリップボードへコピー(WindowsでIEの場合のみ)
update:2006/03/06
このページは、Javaプログラミング言語についての用語を網羅した辞書「JavaA2Z」の一ページです。
詳しくは「JavaA2Z」表紙の説明をご覧ください。