ゆるゆるプログラミング

・多次元配列

多次元配列とは、複数の添え字(インデックス)で指定してデータを管理できる配列のことです。以下の図は、2次元配列を表したものです。

2次元配列

2つの添え字配列aのデータ格納位置を指定し、データにアクセスします。

それでは、2次元配列の使い方について説明します。

2次元配列は、配列名とデータ型を使って、以下のように宣言します。

データ型[][] 配列名;

  または

データ型 配列名[][];

配列を宣言しただけでは使えません。要素数(データの個数)をnew演算子で指定し、配列として扱えるデータを作成します。

配列名 = new データ型[ 1次元配列の数 ][ 1次元配列内の要素数 ];

または、

配列名 = new データ型[ 1次元配列の数 ][];
配列名[ 0 ] = new データ型[ 1次元配列0の要素数 ];
配列名[ 1 ] = new データ型[ 1次元配列1の要素数 ];
                 :

これで2次元配列にアクセスする準備ができました。

ここで、2次元配列を作成するプログラムを解説します。以下がそのJavaソースコードと実行結果です。

Array2_1.java ← クリックしてダウンロードページに移動
001:    public class Array2_1 {
002:    	public static void main( String[] args ) {
003:    		// 2次元配列の作成
004:    		int[][] a = new int[ 8 ][ 4 ];
005:    
006:    		// 配列のサイズを表示
007:    		System.out.println( "1次元配列の数 : " + a.length );
008:    
009:    		// 各要素の長さを表示
010:    		for ( int i = 0; i < a.length; ++ i ) {
011:    			System.out.println( "1次元配列の要素数" + i + "の長さ : "
012:    								 + a[ i ].length );
013:    		}
014:    
015:    		// 改行
016:    		System.out.println();
017:    
018:    		// 配列のサイズを表示
019:    		System.out.println( "配列全体の長さ : " + a.length * a[ 0 ].length );
020:    	}
021:    }

Array2_1.javaの出力結果

1次元配列の数 : 8
1次元配列の要素数0の長さ : 4
1次元配列の要素数1の長さ : 4
1次元配列の要素数2の長さ : 4
1次元配列の要素数3の長さ : 4
1次元配列の要素数4の長さ : 4
1次元配列の要素数5の長さ : 4
1次元配列の要素数6の長さ : 4
1次元配列の要素数7の長さ : 4

配列全体の長さ : 32

この例では、new int[ 8 ][ 4 ]の2次元配列を作成し、1次元配列の数と1次元配列の要素数を表示しています。

結果から、1次元配列の数が8で、1次元配列の要素数が4であることが確認できます。また、配列全体の長さが32(=8x4)であることも確認できます。

次に、3次元配列を作成するプログラムを解説します。以下がそのJavaソースコードと実行結果です。

Array3_1.java ← クリックしてダウンロードページに移動
001:    public class Array3_1 {
002:    	public static void main( String[] args ) {
003:    		// 3次元配列の作成
004:    		int[][][] a = new int[ 2 ][ 4 ][ 3 ];
005:    
006:    		// 配列のサイズを表示
007:    		System.out.println( "配列の数 : " + a.length );
008:    
009:    		// 各要素の長さを表示
010:    		for ( int i = 0; i < a.length; ++ i ) {
011:    			System.out.println( "要素" + i + "の数 : " + a[ i ].length );
012:    			for ( int j = 0; j < a[ i ].length; ++ j )
013:    				System.out.println( " 要素" + j + "の数 : "
014:    							 + a[ i ][ j ].length );
015:    		}
016:    
017:    		// 改行
018:    		System.out.println();
019:    
020:    		// 配列のサイズを表示
021:    		System.out.println( "配列全体の長さ : "
022:    				 + a.length * a[ 0 ].length  * a[ 0 ][ 0 ].length);
023:    	}
024:    }

Array3_1.javaの出力結果

配列の数 : 2
要素0の数 : 4
 要素0の数 : 3
 要素1の数 : 3
 要素2の数 : 3
 要素3の数 : 3
要素1の数 : 4
 要素0の数 : 3
 要素1の数 : 3
 要素2の数 : 3
 要素3の数 : 3

配列全体の長さ : 24

3次元配列は、配列名とデータ型を使って、以下のように宣言します。

データ型[][][] 配列名;

  または

データ型 配列名[][][];

'[]'を3つ並べることで3次元配列を宣言することができます。

結果から、new int[ 2 ][ 4 ][ 3 ]で作成した配列の長さがそれぞれ2、4、3であることが確認できます。また、配列全体の長さが24(=2x4x3)であることも確認できます。

n次元配列は、'[]'を並べることで宣言することができます。お試しください。

■関連コンテンツ

配列(2) 同じ型の変数をまとめた配列について解説
配列を返すメソッド 配列を返すメソッドの作り方
変数について(9) Javaで扱う変数について解説
配列のソート 配列を昇順・降順に並び替える方法を解説

■新着情報

2019.08.05 トランプの操作 トランプを操作するクラス
2019.07.29 整数の累乗 整数の累乗をメソッドを作ってみました

■広告

法人向けのETC専用カード

~約8,000名の受講生と80社以上の導入実績~ 企業向けプログラミング研修ならCodeCamp

日本最大級ショッピングサイト!お買い物なら楽天市場

 

 

 

 

 

 

 

Topへ