多次元配列

多次元配列とは、配列の要素に配列を格納し、さらにその配列の要素に配列を格納するなどした、入れ子にした配列のこと。

構文

宣言と同時に代入(初期化)1

データ型[][][] 変数名 = {
 {
  { 値1--1, 値1--},
  { 値1--1, 値1--}
 },
 {
  { 値2--1, 値2--},
  { 値2--1, 値2--}
 },
 {
  { 値3--1, 値3--},
  { 値3--1, 値3--}
 }
};

宣言と同時に代入(初期化)2

データ型 変数名[][][] = {
 {
  { 値1--1, 値1--},
  { 値1--1, 値1--}
 },
 {
  { 値2--1, 値2--},
  { 値2--1, 値2--}
 },
 {
  { 値3--1, 値3--},
  { 値3--1, 値3--}
 }
};

int型の値を扱う多次元配列の例。

宣言と同時に代入(初期化)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
int varArray[][][] = {
 {
  { 1, 2 },
  { 3, 4 }
 },
 {
  { 5, 6 },
  { 7, 8 }
 },
 {
  { 9, 10 },
  { 11, 12 }
 }
};

サンプル

int型の値を扱う多次元配列のサンプル。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
package samplePackage;

public class SampleClass {

 public static void main( String[] args ){

  // 宣言と同時に代入(初期化)。
  int[][][] $array = {
   {
    { 1, 2 },
    { 3, 4 }
   },
   {
    { 5, 6 },
    { 7, 8 }
   },
   {
    { 9, 10 },
    { 11, 12 }
   }
  };

  System.out.println( "$array[0][0][0]の値は、「" + $array[0][0][0] + "」である。" );
  System.out.println( "$array[0][0][1]の値は、「" + $array[0][0][1] + "」である。" );
  System.out.println( "$array[0][1][0]の値は、「" + $array[0][1][0] + "」である。" );
  System.out.println( "$array[0][1][1]の値は、「" + $array[0][1][1] + "」である。" );
  System.out.println( "$array[1][0][0]の値は、「" + $array[1][0][0] + "」である。" );
  System.out.println( "$array[1][0][1]の値は、「" + $array[1][0][1] + "」である。" );
  System.out.println( "$array[1][1][0]の値は、「" + $array[1][1][0] + "」である。" );
  System.out.println( "$array[1][1][1]の値は、「" + $array[1][1][1] + "」である。" );
  System.out.println( "$array[2][0][0]の値は、「" + $array[2][0][0] + "」である。" );
  System.out.println( "$array[2][0][1]の値は、「" + $array[2][0][1] + "」である。" );
  System.out.println( "$array[2][1][0]の値は、「" + $array[2][1][0] + "」である。" );
  System.out.println( "$array[2][1][1]の値は、「" + $array[2][1][1] + "」である。" );

  System.out.println( "for文で展開" );
  for( int $i = 0; $i < $array.length; $i++ ){
   for( int $i2 = 0; $i2 < $array[$i].length; $i2++ ){
    for( int $i3 = 0; $i3 < $array[$i][$i2].length; $i3++ ){
     System.out.println( "$array[" + $i + "][" + $i2 + "][" + $i3 + "]の値は、「" + $array[$i][$i2][$i3] + "」である。" );
    }
   }
  }

 }

}

実行結果

$array[0][0][0]の値は、「1」である。
$array[0][0][1]の値は、「2」である。
$array[0][1][0]の値は、「3」である。
$array[0][1][1]の値は、「4」である。
$array[1][0][0]の値は、「5」である。
$array[1][0][1]の値は、「6」である。
$array[1][1][0]の値は、「7」である。
$array[1][1][1]の値は、「8」である。
$array[2][0][0]の値は、「9」である。
$array[2][0][1]の値は、「10」である。
$array[2][1][0]の値は、「11」である。
$array[2][1][1]の値は、「12」である。
for文で展開
$array[0][0][0]の値は、「1」である。
$array[0][0][1]の値は、「2」である。
$array[0][1][0]の値は、「3」である。
$array[0][1][1]の値は、「4」である。
$array[1][0][0]の値は、「5」である。
$array[1][0][1]の値は、「6」である。
$array[1][1][0]の値は、「7」である。
$array[1][1][1]の値は、「8」である。
$array[2][0][0]の値は、「9」である。
$array[2][0][1]の値は、「10」である。
$array[2][1][0]の値は、「11」である。
$array[2][1][1]の値は、「12」である。