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

Javaのプログラムを作ってみませんか?プログラミングに必要なものの用意から実行までを説明しています。

2020.03.23

Swingパッケージを使ってグラフィック表示を行う方法を解説しています。

2020.03.23

数学に関係するJavaのメソッドやソースコードなどを紹介しています。

2022.10.25

三角形、台形、円などいろいろな図形の面積を計算するプログラムを紹介しています。詳しくは、記事をご覧ください。

2021.05.18

StringクラスとStringBuilderクラスを利用したプログラミングの仕方を紹介しています。

2016.12.16

日本で使われてきた伝統文様「和柄」について解説しています。

2022.07.27

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

2022.07.14

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

2020.03.23

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

2022.08.03

「ゆるゆるプログラム」のコンテンツを紹介しています。興味のある方はこの記事をご覧ください。

2020.03.23

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

2020.01.30

広告