JavaでHello World
Google
  HOME  |  基礎  |  掲示板  |  ツール |  書籍  |  デザインパターン  |  リンク  |  フィードバック
JavaでHello World > Javaの基礎 > 多次元配列編  
メニュー
Home
情報交換掲示板
ツールの部屋
Java関連の書籍
変数編
文字列編
文字列の連結編
部分文字列編
文字列の比較編
文字列の長さ編
文字列バッファ編
代入演算子編
算術演算子編
演算子の簡略化編
インクリメント/デクリメント
比較演算子編
論理演算子編
ビット演算子編
シフト演算子編
三項演算子編
演算子の優先順位編
配列
多次元配列
ifステートメント
if elseステートメント
forループ
whileループ
doループ
switchステートメント
breakステートメント
continueステートメント
  2004/10/23  田中宏和
多次元配列編
◆配列とは?
配列とは「同じ型のデータを複数持つことができる入れ物」のことです。同じ型のデータが1次元的(直線的)に並んだ配列を1次元配列と呼びます。intやlongなどの基本データ型のデータだけでなく、StringやIntegerなどのオブジェクト型のデータも持つことができます。
◆ここでの環境
OS Windows XP
J2SE SDK 1.4.2_04
◆多次元配列
1次元配列に加えて、2次元またはそれ以上の多次元配列を作成できます。ここでは2次元配列を例にとります。2次元配列とは配列の配列のことです。縦横の2次元で配列を考えます。縦方向に1次元目の配列の番号が増えて、横方向に2次元目の配列の番号が増えます。表にすると以下のようになります。
ia[0][0] ia[0][1] ia[0][2]
ia[1][0] ia[1][1] ia[1][2]
■多次元配列の宣言
2次元配列を宣言するには以下のようにします。型の後にある最初の[]が1次元目、2番目の[]が2次元目を表しています。
[構文]
型[][] 配列名;
[例] int型の2次元配列の場合
int[] ia;
 
■多次元配列の生成
2×3のint型の2次元配列を生成するには以下のようにします
[構文]
型[][] 配列名 = new 型[1次元目の要素数][2次元目の要素数]
[例] 2×3のint型の2次元配列を生成する場合
int[][] ia = new int[2][3];
この2次元配列の各要素をわかりやすく図にすると以下のようになります。縦が1次元目、横が2次元目を表しています。
ia[0][0] ia[0][1] ia[0][2]
ia[1][0] ia[1][1] ia[1][2]
 
■多次元配列の初期化
配列を生成して値を代入していない状態では各要素には初期値が入っています。配列の各要素に値を代入するには以下のようにします。
[構文]
配列名[1次元目の番号][2次元目の番号] = 値;
[例] 2×3のint型の2次元配列の各要素に値を代入する例
int[][] ia = new int[2][3];
ia[0][0] = 1;
ia[0][1] = 2;
ia[0][2] = 3;
ia[1][0] = 4;
ia[1][1] = 5;
ia[1][2] = 6;
 
■多次元配列の生成時に初期値を与える方法
1次元配列の場合と同様に配列の生成時に初期値を与えることができる短縮形があります。
[構文]
配型[][] 配列名 = { { 値 , 値 ,・・} , { 値 , 値 , ・・} , ・・・};
[例] 2×3のint型の2次元配列を生成して初期値を与える例
int[][] ia = { { 1 , 2 , 3 } , { 4 , 5 , 6} };
 
■多次元配列の要素数の取得
1次元目の要素数を取得するには以下のようにします。
[構文]
配列名.length;
[例]
int len = ia.length;
2次元目の要素数を取得するには以下のようにします。
[構文]
配列名[番号].length;
[例]
int len = ia[0].length;
 
■サンプルプログラム
Hairetsu2.java(ここからダウンロード)
public class Hairetsu2 {
  public static void main(String[] args) {
    // 2次元配列の宣言
    int[][] intarray = new int[2][3];

    // 2次元配列の初期化
    intarray[0][0] = 3;
    intarray[0][1] = -23;
    intarray[0][2] = 5;
    intarray[1][0] = 16;
    intarray[1][1] = 38;
    intarray[1][2] = 21;


    // 表示
    System.out.println("intarray[0][0]の値は " + intarray[0][0] + " です。");
    System.out.println("intarray[0][1]の値は " + intarray[0][1] + " です。");
    System.out.println("intarray[0][2]の値は " + intarray[0][2] + " です。");
    System.out.println("intarray[1][0]の値は " + intarray[1][0] + " です。");
    System.out.println("intarray[1][1]の値は " + intarray[1][1] + " です。");
    System.out.println("intarray[1][2]の値は " + intarray[1][2] + " です。");


    // 2次元配列の宣言と初期化
    String[][] sarray = { { "One" , "Two" , "Three" }, { "1" , "2" } };

    // 表示
    System.out.println("sarray[0][0]の値は " + sarray[0][0] + " です。");
    System.out.println("sarray[0][1]の値は " + sarray[0][1] + " です。");
    System.out.println("sarray[0][2]の値は " + sarray[0][2] + " です。");
    System.out.println("sarray[1][0]の値は " + sarray[1][0] + " です。");
    System.out.println("sarray[1][1]の値は " + sarray[1][1] + " です。");


    // 1次元目の要素数を取得
    int len = sarray.length;
    // 表示
    System.out.println("1次元目の要素の数は " + len + " です。");

    // 1次元目の番号が0の2次元目の要素数を取得
    len = sarray[0].length;
    // 表示
    System.out.println("1次元目の番号が0の2次元目の要素数は" + len + " です。");

    // 1次元目の番号が1の2次元目の要素数を取得
    len = sarray[1].length;
    // 表示
    System.out.println("1次元目の番号が1の2次元目の要素数は" + len + " です。");
  }
}
■コンパイルと実行
コマンドプロンプト
C:\JavaHello\Basic\Array>javac Hairetsu2.java

C:\JavaHello\Basic\Array>java Hairetsu2
intarray[0][0]の値は 3 です。
intarray[0][1]の値は -23 です。
intarray[0][2]の値は 5 です。
intarray[1][0]の値は 16 です。
intarray[1][1]の値は 38 です。
intarray[1][2]の値は 21 です。
sarray[0][0]の値は One です。
sarray[0][1]の値は Two です。
sarray[0][2]の値は Three です。
sarray[1][0]の値は 1 です。
sarray[1][1]の値は 2 です。
1次元目の要素の数は 2 です。
1次元目の番号が0の2次元目の要素数は3 です。
1次元目の番号が1の2次元目の要素数は2 です。

C:\JavaHello\Basic\Array>

おおお!2次元配列の値が表示されましたね!
 
■書籍
Java関連の書籍
 
  ネットで買えば断然お得!お買い物なら楽天市場
ツールの部屋 - Java関連の書籍 - デザインパターン - 情報交換掲示板 - HOME