Java 2次元配列の宣言と初期化
1. 2 次元配列は、配列を要素とする配列とみなすことができます。
2. Java における 2 次元配列の宣言と初期化は、高次元から低次元の順に行う必要があります。
例:
静的初期化:
配列2.java:
プログラムコード
public class Array2 { public static void main(String args[]) { int a[][] = {{1,2},{3,4,5,6},{7,8,9}}; int i=0 ; i <a.length ; i++) { for(int j=0 ; j<a[i].length ; j++) { System.out.println("a[" + i + "][" + j + "]= + a[i][j]) } } } ;
動的初期化:
プログラムコード
public class Array2D { public static void main(String args[]) { int i, j; s = 新しい String[3][] = new String[2]; 1] = 新しい文字列 [3] ; s[2] = 新しい文字列 [2] ; for(i=0 ; i<s.length ; i++) { for(j=0 ; j <s[i].length ; j++) { s[i][j] = new String("私の位置は: " + i + "," + j) } } for(i=0 ; i<s.length ; i++) { for(j= 0 ; j<s[i].length ; j++) { System.out.println(s[i][j]) } } ;
Java の 2 次元配列演算について [例]:
public class Lesson{ public static void main(String [] args){ //二次元配列の宣言方法: //データ型 [][] 配列名 = new データ型 [長さ][長さ]; //データtype [ ][] 配列名 = {{123},{456}} /* int [][] arr = {{123},{456}}; // 2 行 3 列の 2 次元配列を定義し、値を割り当てます for(int x = 0; x<arr.length; x++){ // 行を見つけます for(int y = 0; y<arr) [x].length; y++){ //各行の要素の数を見つける System.out.print(arr[x][y]) } */ int [][] num = 新しい int [3][3]; //3 行 3 列の 2 次元配列を定義します num[0][0] = 1 //最初の行の最初の要素に値を代入します。 ] = 2; //最初の行の 2 番目の要素に値 num[0][2] = 3 を代入します。 //最初の行の 3 番目の要素に値 num[1][0] = 4 を代入します。 // 2 行目の最初の要素を割り当てます。要素には num[1][1] = 5 が割り当てられます。 // 値 num[1][2] = 6 を 2 行目の 2 番目の要素に代入します。 // 値 num[2][0] = 7 を 2 行目の 3 番目の要素に代入します。 3 行目の最初の要素 要素に値を代入 num[2][1] = 8 //3 行目の 2 番目の要素に値を代入 num[2][2] = 9; 3 行目の 3 番目の要素 for(int x = 0; x<num.length; x++){ //行を検索 for(int y = 0; y<num[x].length; y++){ //各行の要素の数を見つける System.out.print(num[x][y]) } ) ; } } } //配列値 arr[x][y] は、指定された値が行 x と列 y の値であることを示します。 // 2 次元配列オブジェクトを使用する場合は、length で表される長さに注意してください。 // 行 (Row) の数を示す長さ (arr.length など) を配列名の直後に追加します。 /インデックスを指定した後に追加します。上記の長さ(arr[0].lengthなど)は、行が持つ要素、つまり列数(Column)を指します。
別の例を見てみましょう。2 つの 2 次元配列を新しい 2 次元配列に統合します。要素は 2 つの配列の対応する要素の合計です。 2 つの配列を入力します: {{1,5}、{2,3}、{6,5}}、{{4,2}、{2,6}、{5,7}}
出力印刷: {{5,7}、{4,9}、{11,12}}
コード: class arraysCtrl{ static void arraysAdd(int[][] a,int[][] b) { StringBuffer sbResult = new StringBuffer("{"); int[][] result = new int[a.length][ b.length]; for(int i=0;i<a.length;++i) { sbResult.append("{"); j=0;j<a[i].length;++j) { result[i][j] = a[i][j]+b[i][j] sbResult.append(result[i]) [j]); if(j == a[i].length-1) { if(i == a.length-1) { sbResult.append("}"); sbResult.append("},"); } sbResult.append(","); } if(i == a.length-1) { sbResult.append("}") } .out.println(sbResult); } public static void main(String[] args) { int[][] aTst1 = {{1,5},{2,3},{6,5}}, aTst2 = {{4,2},{2,6},{5,7}}; }