0
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

posted at

updated at

【Java開発】第9回 多次元配列

初めに

皆さん。こんにちは!

DreamHanksの254cmです。

今回は多次元配列について説明していきます。

Java記事のまとめはこちらです。

前回の記事は【Java開発】第8回 配列です。

多次元配列

今までの配列は一つの行で値を格納する「一次元配列」でした。

多次元配列は二次元配列以上で実装したものになります。

image.png
int型の一次元配列はいくつかのint型の変数が格納されているものであり、

image.png
int[]型の二次元配列はいくつかのint[]型の一次元配列が格納されているものです。

つまり、N次元配列はN-1次元配列が格納されている配列です。
宣言
二次元の場合

データ型[][] 配列変数名 = new データ型[要素数][要素数];

三次元の場合

データ型[][][] 配列変数名 = new データ型[要素数][要素数][要素数];

初期化
二次元の場合

データ型[][] 配列変数名 = {{要素,要素,要素,要素} , {要素,要素,要素,要素}};

三次元の場合

データ型[][] 配列変数名 = {{{要素,要素,要素},{要素,要素,要素}},{{要素,要素,要素},{要素,要素,要素}},{{要素,要素,要素},{要素,要素,要素}}};

上記のように次元が増えても書き方の規則は同じようになります。

二次元配列を一つの行ごと初期化すると

変数名[インデクス] = new int[] {要素,要素,要素,要素};

サンプル

public class ArraySample {                  
    public static void main(String[] args) {                
        int [][] arr1 = new int[2][3];          
        arr1[0] = new int[] {1,2,3};            
        arr1[1] = new int[] {4,5,6};            

        int [][] arr2 = {{1,2,3} , {4,5,6}};            

        int[][][] arr3 = new int [2][2][2];         

        arr3[0] = new int [][] {{1,2} ,{3,4}};          
        arr3[1] = new int [][] {{5,6} ,{7,8}};          

        int[][][] arr4 = {{{1,2} ,{3,4}},{{5,6} ,{7,8}}};           

        int[][] arr5 = new int [5][5];          
        for(int i = 0; i < arr5.length; i++) {          
            for(int j = 0; j < arr5[i].length; j++) {       
                arr5[i][j] = i+j;   
            }       
        }           
    }               
}                           
public class ArraySample {                                  
    public static void main(String[] args) {                                
        int[][] arr = new int[5][5];                            
        int i = 0;                          
        int j = 0;                          

        for(int[] array : arr) {                            
            for(int value : array) {                        
                arr[i][j] = 1;                  
                j++;                    
            }                       
            i++;                        
        }                           

        for(int[] array : arr) {                            
            for(int value : array) {                        
                System.out.print(value);                    
            }                       
            System.out.println();                       
        }                           
    }                               
}

int型の一次元配列はいくつかのint変数を出せます。

同じく二次元配列はいくつかの一次元配列を出せます。

一次元配列で一つの要素は変数ですが、二次元配列で一つの要素は一次元配列です。

つまり、二次元配列で一つの変数を出したい場合には二次元配列の要素の要素を出す必要があります。

image.png
上記のようにarr[0]配列のインデクス0番目の要素を出すために、arr[0][0]と書きました。

サンプル

public class ArraySample {                  
    public static void main (String[] args) {               
        int a[][] = new int [5][5];         

        for (int i=0; i<a.length; i++ ) {           
            for(int j=0;j<a[i].length;j++) {        
                if (i%2==0&&j%2==0) {   
                     a[i][j]= 1;
                }   
            }       
        }               

        for(int [] arr : a) {           
            for(int value : arr) {      
                System.out.print(value +" ");   
            }       
            System.out.println();       
        }           
    }               
}                   

終わりに

今回の記事は以上になります。

次回はJavaのArrayListを学びましょう。

私たちの最新の記事はこちらで確認することができます。

ご覧いただきありがとうございます。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
0
Help us understand the problem. What are the problem?