Introduction to Arrays Java ႏွင့္ အျခား language မ်ားတြင္ variable တစ္ခုကို type တူညီ ေသာ multiple items မ်ားႏွင့္အတူ သိမ္းဆည္းရန္ႏွင့္ ကိုင္တြယ္ေျဖ ႐ွင္းရန္ feature တစ္ခုကို ထၫ့္သြင္းေပးထားသည္။ ၎ feature မွာ array ျဖစ္သည္။ Array တစ္ခုသည္ type တူညီေသာ data items မ်ားကို အခန္းငယ္ ေလးမ်ားအတြင္းတြင္ သိမ္းဆည္းေပးၿပီး ထိုအခန္းငယ္မ်ားကို slot နံပါတ္မ်ားျဖင့္ ခြဲျခားထားသည္။ slot number 0 1 2 number: 1 9 7 by Zaw Htet Aung Array Array တစ္ခုဆိုတာဟာ type တူညီတဲ့ variables ေတြကို စုစည္းထား တဲ့ group တစ္ခုျဖစ္ပါတယ္။ မည္သၫ့္ Type အမ်ိဳးအစားကို မဆို Arrays အျဖစ္ ဖန္တီးလို႔ ရပါတယ္။dimensions မ်ားလည္း တစ္ခု (ဒါမွမဟုတ္) တစ္ခုထက္မက ရိွႏိုင္ပါတယ္။ Array တစ္ခုထဲမွာရိွတဲ့ element ေတြကို index နံပါတ္ နဲ႔ လက္ခံယူပါ တယ္။ C/C++ တို႔မွာရိွတဲ့ Array နဲ႔ Java မွာရိွတဲ့ Array တို႔ဟာ အလုပ္လုပ္ပံု ခ်င္းမတူညီပါ။ by Zaw Htet Aung One-Dimensional Arrays One-Dimensional array တစ္ခုဆိုတာ အေျခခံအားျဖင့္ေတာ့ type တူညီတဲ့ variables ေတြကို စုစည္းထားတဲ့ list တစ္ခုျဖစ္ပါတယ္။ one-dimensional array တစ္ခု၏ general form မွာ type var-name [ ] ; type - type ေနရာတြင္ Array က ပိုင္ဆိုင္ေနေသာ data ေတြ ရဲ႕ type ကို ေၾကညာေပးရပါမည္။ ဥပမာ- array name days ႏွင့္ array type int ရိွေသာ Array တစ္ခု ေၾကညာ မည္ဆိုပါက int days [ ] ; by Zaw Htet Aung One-Dimensional Arrays Array တစ္ခုအား ထိုကဲ့သို႔ေၾကညာပါက days သည္ array variable တစ္ခုျဖစ္သြားပါမည္။သို႔ေသာ္ အမွန္တကယ္ array တစ္ခုျဖစ္လာမွာ မဟုတ္ေသးပါ။ Actual array တစ္ခုျဖစ္လာရန္ array variable အား အခန္းမည္မွ်ျဖင့္ ေဆာက္မည္ဆိုသည္ကို ေၾကညာေပးရန္လိုအပ္ပါသည္။ထိုကဲ့သို႔ ေၾကညာရန္ new ဆိုသၫ့္ keywords အား အသံုးျပဳႏိုင္ပါသည္။ array-var = new type [size] ; new ဆိုတာ memory ကို ေနရာခ်ေပးတဲ့ sepcial operator တစ္ခုျဖစ္ပါတယ္။ by Zaw Htet Aung One-Dimensional Arrays int type , size 12 ရိွေသာ Array name month_days ကို ေၾကညာခ်င္ပါက int month_days [ ] = new int [12] ; Array ၏ size သည္ 1 မွ စတင္ၿပီး Array ၏ index number သည္ 0 မွစတင္ပါသည္။ Array ၏ ပထမဆံုးအခန္းကို တန္ဖိုးထၫ့္ သြင္းလိုပါက months_days [0] = 31; Array ၏ ပထမဆံုးအခန္းထဲက တန္ဖိုးကို ျပန္လည္ ရယူလိုပါက month_days [0] by Zaw Htet Aung One-Dimensional Arrays Arrays ေတြကို declared လုပ္ၿပီးတာနဲ႔ initialized လုပ္သင့္ပါတယ္။ဒီ ျဖစ္စဥ္ဟာဆိုရင္ ရိုးရိုး type ေတြကို initialized လုပ္တာနဲ႔ အတူတူပဲ ျဖစ္ပါတယ္။ Arrays မ်ား၏ တန္ဖိုးမ်ားကို တစ္ခါတည္း initialized လုပ္လိုပါက curly braces ႏွစ္ခု ၾကားတြင္ ထၫ့္သြင္းေရးသားရမည္။တန္ဖိုးမ်ားကို ( , ) မ်ားျခား ၍ index တစ္ခုျခင္းစီ၏ တန္ဖိုးမ်ားေနရာတြင္ assign လုပ္ႏိုင္ပါသည္။ new keyword အား အသံုးျပဳဖို႔ မလိုအပ္ပါ။ by Zaw Htet Aung One-Dimensional Arrays ဥပမာ - day အသီးသီး ရိွ days မ်ားကို သိမ္းဆည္းလိုပါက int month_days[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; System.out.println(“ February has “ + month_days[1] + days.”); by Zaw Htet Aung Multidimensional Arrays Java တြင္ multidimensional arrays ဆိုသည္မွာ Array တစ္ခုပင္ျဖစ္ သည္။ multidimensional arrays တြင္ two-dimensional arrays ႏွင့္ threedimensional array တို႔ပါဝင္သည္။ two-dimensional arrays တစ္ခုကို ေၾကညာလိုပါက int [ ] [ ] array ; // for int array String [ ] [ ] str ; // for String array one-dimensional array ႏွင့္ မတူသည္မွာ square braket တစ္ခု ပိုလာျခင္းပင္ ျဖစ္သည္။ by Zaw Htet Aung Two-Dimensional Arrays class TwoDArray{ public static void main(String args[ ] ) { int twoD [ ] [ ] = new int [3] [4] ; int i, j, k = 0; for(i = 0 ; i< 3 ; i++){ for(j = 0; j <4 ; j++ ){ twoD[i] [j] = k ; k++; } } by Zaw Htet Aung Two-Dimensional Arrays for(i =0 ; i < 3 ; i ++ ) { for( j = 0; j < 4 ; j++){ System.out.print( towD[ i ] [ j ] + “ “ ) ; } System.out.println( ) ; } } } -----------------------------------------------------------------------------------0123 4567 8 9 10 11 by Zaw Htet Aung Two-Dimensional Arrays int twoD[ ] [ ] = new int [3] [4] ၏အလုပ္လုပ္ပံုမွာ Right index determines column. Left index determines row. [0] [0] [0] [1] [0] [2] [0] [3] [1] [0] [1] [1] [1] [2] [1] [3] [2] [0] [2] [1] [2] [2] [2] [3] by Zaw Htet Aung Two-Dimensional Arrays Two-dimensional Arrays အား ေအာက္ပါအတိုင္းလည္းေၾကညာ ႏိုင္ပါသည္။ int twoD[ twoD[0] twoD[1] twoD[2] ] [ ] = new int [3] [ ]; = new int [4]; = new int [4]; = new int [4]; အထက္ပါအတိုင္းေၾကညာျခင္းသည္ int twoD[ ] [ ] = new int [3] [4] ႏွင့္အတူတူပင္ျဖစ္သည္။၎ကဲ့သို႔ေၾကညာျခင္းသည္ second dimensions ကို manually အေနႏွင့္ ေၾကညာျခင္းျဖစ္သည္။ by Zaw Htet Aung Two-Dimensional Arrays manually အျဖစ္ေၾကညာျခင္းကို ေအာက္ပါအတိုင္း array ကို ေၾကညာလို သၫ့္အခါ အသံုးျပဳရန္ ထၫ့္သြင္းထား ျခင္းျဖစ္သည္။ class TwoDManual { public static void main (String args [ ] ) { int twoD[ ] [ ] = new int [3] [ ] ; twoD [ 0 ] = new int[ 1 ] ; twoD [ 1 ] = new int [ 2 ]; twoD [ 2 ] = new int [ 3 ]; int i, j , k = 0; by Zaw Htet Aung Two-Dimensional Arrays ; for ( i = 0; i < 3 ; i ++){ for( j = 0; j < i + 1 ; j++) { twoD[ i ] [ j ] = k; k ++ ; } } for( i = 0; i < 3 ; i++){ for(j=0; j < i + 1; j ++ ){ System.out.print(twoD [i] [j ] + “ ” ) } } Output Program 0 12 345 } Sytem.out.println( ); } by Zaw Htet Aung Two-Dimensional Arrays အထက္ပါ program တြင္ array ၏ အလုပ္လုပ္ေဆာင္ပံုမွာ [0] [0] [1] [0] [1] [1] [2] [0] [2] [1] [2] [2] multidiemnsional arrays ကို applications ေတြအမ်ားႀကီးအတြက္ အသံုးျပဳျခင္းသည္ သတ္သီးကတ္ဖဲ့ ႏိုင္သၫ့္အတြက္ မသင့္ေလွ်ာ္ပါ။ by Zaw Htet Aung Two-Dimensional Arrays သို႔ေသာ္လည္း အခ်ိဳ႕ ေနရာမ်ားတြင္ irregular arrays ကို ထိထိေရာက္ေရာက္ အသံုး ျပဳႏိုင္ ပါသည္။ဥပမာ - အလြန္ႀကီးမား ေသာ two-dimensional array တစ္ခုတြင္ array ခန္းမ်ားကို တူညီ ေသာတန္ဖိုးမ်ားျဖင့္မဟုတ္ပဲ က်ိဳးတိုးက်ဲတဲ တည္ေဆာက္လိုပါက irregular array သည္ perfecr solution ျဖစ္သည္။ multidimensional arrays မ်ားအား ေအာက္ပါအတိုင္း ရိုးရွင္းစြာ initialize လုပ္ႏိုင္ပါသည္။ by Zaw Htet Aung Two-Dimensional Arrays class Matrix { public static void main(String args[]) { double m[ ][ ] = { { 0*0, 1*0, 2*0, 3*0 }, { 0*1, 1*1, 2*1, 3*1 }, { 0*2, 1*2, 2*2, 3*2 }, { 0*3, 1*3, 2*3, 3*3 } }; int i, j; for(i=0; i<4; i++) { for(j=0; j<4; j++) System.out.print(m[i][j] + " "); System.out.println(); }} } Output 0.0 0.0 0.0 0.0 0.0 1.0 2.0 3.0 0.0 2.0 4.0 6.0 0.0 3.0 6.0 9.0 by Zaw Htet Aung Two-Dimensional Arrays အထက္ပါ program အတိုင္း matrix ပံုစံျဖင့္လည္း တည္ေဆာက္ႏိုင္ပါ သည္။ Array မ်ားကို initialize လုပ္ရာတြင္ literal တန္ဖိုးမ်ားသာမက expression မ်ားအသံုးျပဳ၍ လည္း ဖန္တီးႏိုင္ပါသည္။ by Zaw Htet Aung Three-Dimensional Arrays three-dimensional arrays တစ္ခုကို ေၾကညာလိုပါက int [ ] [ ] [ ]array ; // for int array String [ ] [ ] [ ] str ; // for String array two-dimensional arrays တြင္ square bracket (၂) ခု ပါ၍ threedimensional arrays တြင္ square bracket (3) ခုပါဝင္သည္။ Three-Dimensional Arrays တစ္ခုကို တည္ေဆာက္လိုပါက ေအာက္ပါ အတိုင္းတည္ေဆာက္ႏိုင္သည္။ by Zaw Htet Aung Three-Dimensional Arrays class ThreeDMatrix { public static void main(String args[]) { int threeD[ ][ ][ ] = new int[3][4][5]; int i, j, k; for(i=0; i<3; i++){ for(j=0; j<4; j++){ for(k=0; k<5; k++){ threeD[i][j][k] = i * j * k; } } } by Zaw Htet Aung Three-Dimensional Arrays for(i=0; i<3; i++) { for(j=0; j<4; j++) { for(k=0; k<5; k++){ System.out.print(threeD[i][j][k] + " "); } System.out.println(); } System.out.println(); } } } by Zaw Htet Aung Three-Dimensional Arrays Output 00000 00000 00000 00000 00000 01234 02468 0 3 6 9 12 00000 02468 0 4 8 12 16 0 6 12 18 24 by Zaw Htet Aung Alternative Array Declaration Syntax Array မ်ားကို ေၾကညာရာတြင္ Square Bracket အား variable ၏ ေရွ႕ ႏွင့္ ေနာက္ (၂) ေနရာလံုးတြင္ ေရးသား၍ရသည္။ type [ ] var-name; type var-name [ ]; Array မ်ားဖန္တီးရာတြင္လည္း ေအာက္ပါအတိုင္း ေရးသားႏိုင္သည္။ int [ ] num1, num2, num3 ; // create three arrays int num1 [ ], num2 [ ], num3 [ ] ; // create three arrays by Zaw Htet Aung