Java配列の宣言、作成、初期化
1 次元配列を宣言する方法:
タイプ var[] またはタイプ [] var;
配列を宣言する場合、その長さ (配列内の要素の数) を指定することはできません。
Java では、キーワード new を使用して配列オブジェクトを作成します。形式は次のとおりです。
配列名 = 新しい配列要素の種類 [配列要素の数]
例:
TestNew.java:
プログラムコード:
パブリッククラス TestNew { public static void main(String args[]) { int[] s; int i; s = new int[5]; { s[i] = i ; } for(i = 4 ; i >= 0 ; i--) { System.out.println("" + s[i]) ; }初期化:
1. 動的初期化: 配列の定義は、スペースの割り当てや配列への値の割り当ての操作とは別に実行されます。
2. 静的初期化: 数値を定義する際に、スペースを割り当て、配列要素に値を割り当てます。
3. デフォルトの初期化: 配列は参照型であり、その要素はクラスのメンバー変数に相当するため、配列が領域を割り当てた後、各要素もメンバー変数の規則に従って初期化されます。
例:
TestD.java (動的):
プログラムコード:
public class TestD { public static void main(String args[]) { int a[]; a = new a[0] = 1;日[] ; 日 = 新しい日付[3] ; 日[0] = 新しい日付(2008,4,5) ; 日[1] = 新しい日付(2008,2,31) ; Date(2008,4,4); } } クラス Date { int year,month,day; date(int year,int month,int day) { this.year = year; this.month = month; ; } }TestS.java (静的):
プログラムコード:
public class TestS { public static void main(String args[]) { int a[] = {0,1,2}; 時刻times [] = {new Time(19,42,42),new Time(1,23) ,54),new Time(5,3,2)} ; } } クラス Time { int 時間 , int 分 , int 秒 ; this.hour = 時間 ; ;この.秒 = 秒;TestDefault.java (デフォルト):
プログラムコード:
public class TestDefault { public static void main(String args[]) { int a [] = new int [5] ; System.out.println("" + a[3]) } ; JAVA の基本 1 次元配列と多次元配列
Java 言語では、配列は最も単純な複合データ型です。配列は、順序付けされたデータのコレクションです。配列内の各要素は同じデータ型を持ち、配列内の要素を一意に識別するために使用できます。配列には、1 次元配列と多次元配列が含まれます。
1. 1次元配列の定義
配列名[]を入力します。
型 (type) は、単純型や複合型など、Java の任意のデータ型にすることができます。
例えば:
int intArray[];
2. 1次元配列の初期化
(1) 静的初期化
int intArray[]={1,2,3,4}; String stringArray[]={"abc", "How", "you"};(2) 動的初期化
1) 単純型配列
int intArray[]; int intArray = 新しい int[5];
2) 複合型の配列
String stringArray[ ]; String stringArray = new String[3];/*配列内の各要素の参照空間 (32 ビット) を開きます */ stringArray[0]= new String("How");//最初のもの 配列要素用のスペースを作成します stringArray[1]= new String("are");// 2 番目の配列要素用のスペースを空けます stringArray[2]= new String("you");// 3 番目の配列用のスペースを作成します要素3. 1次元配列要素への参照
配列要素は次のように参照されます。
配列名[インデックス]
インデックスは配列の添字で、整数定数または式を指定できます。添字は 0 から始まります。各配列には、その長さを指定する属性 length があります。たとえば、 intArray.length は、配列 intArray の長さを指定します。
多次元配列
Java 言語では、多次元配列は配列の配列とみなされます。
1. 2次元配列の定義
タイプ配列名[ ][ ]; タイプ[ ][ ]配列名;
2. 2次元配列の初期化
(1) 静的初期化
int intArray[ ][ ]={{1,2},{2,3},{3,4,5}};Java言語では、2次元配列を配列の配列とみなすため、配列空間が連続的に割り当てられることはなく、2次元配列の各次元のサイズが同じである必要はありません。
(2) 動的初期化
1) 次の形式で各次元にスペースを直接割り当てます。
arrayName = 新しいタイプ[arrayLength1][arrayLength2]; int a[ ][ ] = new int[2][3];
2) 最も高い次元から始めて、各次元にスペースを割り当てます。
arrayName = 新しいタイプ[arrayLength1][ ]; arrayName[0] = 新しいタイプ[arrayLength20]; arrayName[1] = 新しいタイプ[arrayLength1-1] = 新しいタイプ[arrayLength2n];
3) 例: 2 次元の単純なデータ型配列の動的初期化は次のとおりです。
int a[ ][ ] = 新しい int[2][ ]; a[0] = 新しい int[3] = 新しい int[5];
2 次元複合データ型の配列の場合、参照空間を最初に最高次元に割り当て、次に下位次元の空間を順番に割り当てる必要があります。さらに、領域は配列要素ごとに個別に割り当てる必要があります。
例えば:
String s[ ][ ] = new String[2][ ]; s[0]= new String[2];//最高次元に参照空間を割り当てます s[1]= new String[2];最上位次元 参照空間を割り当てる s[0][0]= new String("Good");// 配列要素ごとに個別に空間を割り当てる s[0][1]= new String("Luck");// それぞれ配列要素 配列要素には個別にスペースが割り当てられます s[1][0]= new String("to");// 配列要素ごとに個別のスペースを割り当てます s[1][1]= new String("You");// 配列要素ごとに個別のスペースを割り当てます3. 2次元配列要素への参照
2 次元配列の各要素の参照メソッドは次のとおりです: arrayName[index1][index2]
例えば:
数値[1][0];
4. 2次元配列の例:
[例] 2 つの行列の乗算
public class MatrixMultiply{ public static void main(String args[]){ int i,j,k; int a[][]=new int [2][3]; // 2 次元配列の動的初期化 int b [] []={{1,5,2,8},{5,9,10,-3},{2,7,-5,-18}};//静的初期化
二次元配列
int c[][]=new int[2][4]; //2 次元配列の動的初期化 for (i=0;i<2;i++) for (j=0; j<3;j++) a[ j]=(i+1)*(j+2); for (i=0;i<2;i++){ for (j=0;j<4;j++){ c[j]=0; for( k=0;k<3;k++) c[j]+=a[k]*b[k][j]; } } System.out.println("*******行列 C********");//行列 C マークを印刷します。 for(i=0;i<2;i++){ for (j=0;j<4;j++) System.out.println(c[j]+" "); ); } }