2019.03.15

Javaプログラミング

多次元配列

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

以下の図は、2次元配列を表したものです。

2次元配列

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

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

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

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

	   または

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

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

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

または、

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

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

Javaソースコード - 2次元配列

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

Array2_1.java

001
002
003
004
005
006
007
008
009
010
011
012
013
014
015
016
017
018
019
020
021
public class Array2_1 {
	public static void main( String[] args ) {
		// 2次元配列の作成
		int[][] a = new int[ 8 ][ 4 ];

		// 配列のサイズを表示
		System.out.println( "1次元配列の数 : " + a.length );

		// 各要素の長さを表示
		for ( int i = 0; i < a.length; ++ i ) {
			System.out.println( "1次元配列の要素数" + i + "の長さ : "
								 + a[ i ].length );
		}

		// 改行
		System.out.println();

		// 配列のサイズを表示
		System.out.println( "配列全体の長さ : " + a.length * a[ 0 ].length );
	}
}

コンパイル ソースコードが「ANSI」の場合

C:\talavax\javasample>javac -encoding sjis Array2_1.java

コンパイル ソースコードが「UTF-8」の場合

C:\talavax\javasample>javac Array2_1.java

実行

C:\talavax\javasample>java Array2_1

出力結果

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)であることも確認できます。

Javaソースコード - 3次元配列

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

Array3_1.java

001
002
003
004
005
006
007
008
009
010
011
012
013
014
015
016
017
018
019
020
021
022
023
024
public class Array3_1 {
	public static void main( String[] args ) {
		// 3次元配列の作成
		int[][][] a = new int[ 2 ][ 4 ][ 3 ];

		// 配列のサイズを表示
		System.out.println( "配列の数 : " + a.length );

		// 各要素の長さを表示
		for ( int i = 0; i < a.length; ++ i ) {
			System.out.println( "要素" + i + "の数 : " + a[ i ].length );
			for ( int j = 0; j < a[ i ].length; ++ j )
				System.out.println( " 要素" + j + "の数 : "
							 + a[ i ][ j ].length );
		}

		// 改行
		System.out.println();

		// 配列のサイズを表示
		System.out.println( "配列全体の長さ : "
				 + a.length * a[ 0 ].length  * a[ 0 ][ 0 ].length);
	}
}

コンパイル ソースコードが「ANSI」の場合

C:\talavax\javasample>javac -encoding sjis Array3_1.java

コンパイル ソースコードが「UTF-8」の場合

C:\talavax\javasample>javac Array3_1.java

実行

C:\talavax\javasample>java Array3_1

出力結果

配列の数 : 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次元配列は、'[]'を並べることで宣言することができます。お試しください。

以上です。

関連コンテンツ

Javaの学習に役立つソースコードを多数紹介しています。是非、ご覧ください。

2022.09.10

同じ型の変数(データ)を複数個まとめて管理するデータの持ちかたがあります。これが配列です。くわしくは、記事をご覧ください。

2016.01.14

プログラミングで使う変数って何?

2020.03.23

配列を使うJavaソースコードを多数紹介しています。

2021.05.18

繰り返し処理を使ったJavaのソースコードサンプルを紹介しています。

2020.03.23

Javaを使った簡単な応用プログラム(生年月日から年齢を計算プログラムなど)を紹介しています。

2022.07.07

画像フォーマット形式・色・大きさ・傾きなどの変更、特定の図形(文字・記号など)を見つけたり、取り出したりする画像処理について詳しく解説。

2015.11.29

プログラミング、ITに関する用語をまとめています。

2022.10.17

変数やクラスに格納されている値をコンソール出力する方法は?

2020.03.23

プログラムの最初に実行されるメソッドは?

2022.12.13

Javaのプログラムを書いてみませんか?プログラムの書き方をくわしく説明しています。

2020.03.23

「Javaソースコード」から実行可能な「オブジェクトコード」に変換する方法をくわしく説明しています。

2020.03.23

IT分野でアクセスするってどういう意味?インターネットにアクセス、データベースにアクセスのように使われますが・・・

2022.07.14

Javaで扱うデータ型について説明しています。

2020.03.23

プログラミング言語とは?種類や特徴について説明しています。

2022.08.03

2次元の配列を使った九九(くく)の表の作り方を紹介しています。

2020.01.30

広告