Sunday, January 26, 2014

Java Tutorial 9

Java Tutorial 9

Array ဆိုတာ data အစုအေဝးႀကီးပါ၊ type(အမ်ိဴးအစား) တူေသာ variable ေတြကိုစုထားတဲ့ အစုအေဝးတစ္ခုပါပဲ။ အဲဒီလိုစုေဝးေနေတာ့ ကိုလိုခ်င္တဲ့ data တစ္ခုခ်င္းစီကို အစုအေဝးထဲက ဘယ္လိုဆြဲထုတ္မလဲလို႔ ေမးစရာရွိပါတယ္။ array ထဲက data တစ္ခုခ်င္းစီမွာ ကိုယ္ပိုင္နံပါတ္ကေလးေတြ ရွိၾကပါတယ္၊ လူေတြမွာနာမည္ေတြရွိသလိုေပါ့။ အဲဒီ့ နံပါတ္ေတြကိုေခၚၿပီး သက္ဆိုင္ရာ data ေတြကိုအသံုးျပဳႏိုင္ပါတယ္။ array ထဲက data တစ္ခုခ်င္းစီမွာ index(နံပါတ္) တစ္ခုႏွင့္ value(တန္ဖိုး)တစ္ခုစီရွိၾကပါတယ္။ array ဟာတကယ္ေတာ့ memory ေပၚမွာအခန္းေတြဖြဲ႕ၿပီး data ေတြကိုသိမ္းထားတာပါ၊ အခန္းတစ္ခန္းခ်င္းစီမွာ ကိုယ္ပိုင္နံပါတ္ႏွင့္ အခန္းထဲမွာသိမ္းထားတဲ့ တန္ဖိုးတစ္ခုစီရွိပါတယ္။ ေအာက္ကပံုေလးဟာ official java tutorial page ကေနယူထားတာပါ။

Array

 

Array ရဲ႕အခန္းေတြကိုနံပါတ္မွတ္ရာမွာ ပထမဦးဆံုးအခန္းကို “0”(zero) လို႔မွတ္ပါတယ္၊ ဒုတိယအခန္းကိုေတာ့ “1” မွတ္ပါတယ္။ Array တစ္ခုမွာ length ဆိုတာရွိပါတယ္။ array ရဲ႕ length ဆိုတာကေတာ့ သူ႔ထဲမွာပါဝင္တဲ့ data အေရအတြက္၊ တစ္နည္းေျပာရရင္ အခန္းအေရအတြက္ ပါပဲ။ array ထဲမွာ အခန္း ၅ ခန္း သို႔မဟုတ္ data ၅ ခုပါတယ္ဆိုရင္ သူ႔ရဲ႕ length က ၅ ျဖစ္ပါတယ္။ array ရဲ႕ပထမဆံုးအခန္းကို “0” လို႔ေပးထားတဲ့အတြက္၊ array length က ၅ ျဖစ္တယ္ဆိုရင္ ေနာက္ဆံုးအခန္းရဲ႕နံပါတ္က ၄ ျဖစ္ပါတယ္။ array ေတြကိုကိုင္တြယ္တဲ့အခါ ဒီအခ်က္ကိုသတ္ိထားသင့္ပါတယ္။ array ဆိုတာ type တူတဲ့ variable ေတြကိုစုထားတာ ျဖစ္တဲ့အတြက္ array type ကိုေၾကာ္ျငာတဲ့အခါ ေရွ႕ကပိုစ့္ေတြမွာေျပာထားတဲ့ variable type ေတြကို array ရဲ႕ type အျဖစ္သံုးႏိုင္ပါတယ္၊ class ေတြကိုလည္း array type အျဖစ္သံုးႏိုင္ပါတယ္။ array ေၾကာ္ျငာပံုကို နမူနာၾကည့္ပါဦး။ int[] arr; ဒီလိုမ်ိဴးေၾကာ္ျငာရပါတယ္၊ array ရဲ႕ length ကိုသတ္မွတ္တာက ေတာ့ဒီလိုမ်ိဴးပါ arr=new int[3]; ၊ array ထဲကို data ထည့္ၿပီဆိုရင္ဒီလိုပါ arr[0] = 100; arr[1] = 200; arr[2] = 300; ေအာက္မွာနမူနာ program တစ္ပုဒ္ေပးထားပါတယ္။

“ArrayExample.java”

class ArrayExample {

public static void main(String[] args) {

int[] anArray;              // declares an array of integers

 

anArray = new int[10];      // allocates memory for 10 integers

anArray[0] = 100; // initialize first element

anArray[1] = 200; // initialize second element

anArray[2] = 300; // etc.

anArray[3] = 400;

anArray[4] = 500;

anArray[5] = 600;

anArray[6] = 700;

anArray[7] = 800;

anArray[8] = 900;

anArray[9] = 1000;

 

System.out.println("Element at index 0: " + anArray[0]);

System.out.println("Element at index 1: " + anArray[1]);

System.out.println("Element at index 2: " + anArray[2]);

System.out.println("Element at index 3: " + anArray[3]);

System.out.println("Element at index 4: " + anArray[4]);

System.out.println("Element at index 5: " + anArray[5]);

System.out.println("Element at index 6: " + anArray[6]);

System.out.println("Element at index 7: " + anArray[7]);

System.out.println("Element at index 8: " + anArray[8]);

System.out.println("Element at index 9: " + anArray[9]);

}

}

 

ဒီမွာတျခားေသာ array ေၾကာ္ျငာနည္းေတြျပထားပါတယ္၊ ေလ့လာလိုက္ပါဦး။
byte[] anArrayOfBytes;

short[] anArrayOfShorts;

long[] anArrayOfLongs;

float[] anArrayOfFloats;

double[] anArrayOfDoubles;

boolean[] anArrayOfBooleans;

char[] anArrayOfChars;

String[] anArrayOfStrings;

 

ေၾကာ္ျငာျခင္း၊ တန္ဖိုးထည့္ျခင္း ႏွင့္ အသံုးျပဳျခင္း

String[] strArray; ဒါဟာ array ေၾကာ္ျငာတာပါ။

String strArray[]; ဒီလိုေၾကာ္ျငာလို႔လည္းရပါတယ္။

String[] strArray = new String[10]; ဒါကလည္းေၾကာ္ျငာတာပါပဲ၊ သူကအခန္းအေရအတြက္ကို ပါ

တစ္ခါတည္းေၾကာ္ျငာသြားပါတယ္။

ေၾကာ္ျငာၿပီးရင္ တန္ဖိုးထည့္ရပါတယ္။
anArray[0] = 100; // initialize first element

anArray[1] = 200; // initialize second element

anArray[2] = 300; // etc.


ဒီလိုမ်ိဴး array ကိုဖန္တီးၿပီး တန္ဖိုးထည့္တာကို တစ္ခါတည္းေပါင္းေရးလို႔ရပါတယ္။

int[] intArray = {100, 200, 300, 400, 500, 600, 700, 800, 900, 1000};


ဒီလိုလည္းရပါေသးတယ္၊ ကိုယ္ႏွစ္သက္သလိုအသံုးျပဳႏိုင္ပါတယ္။

int[] intArray = new int[] {100, 200, 300, 400, 500, 600, 700, 800, 900, 1000};


array တစ္ခုႏွင့္တစ္ခု ေကာ္ပီကူးရင္ေတာ့ဒီလိုပါ။

ArrayOne = ArrayTwo;


ဒါေပမဲ့ အဲဒီလိုေကာ္ပီကူးရင္ အဲဒီ array ႏွစ္ခုဟာခ်ိတ္ဆက္သြားပါတယ္။ ဆိုလိုတာက array တစ္ခုရဲ႕အခန္းထဲက တန္ဖိုးတစ္ခုေျပာင္းတဲ့အခါ၊ အဲဒီ array နဲ႔ခ်ိတ္ဆက္ထားတဲ့ array ရဲ႕အလားတူအခန္းထဲက တန္ဖိုးဟာလည္း ေျပာင္းလည္းသြားရပါတယ္။

နမူနာေလးကိုၾကည့္ပါဦး။

int[] ArrayOne = {100,200,300};

int[] ArrayTwo = ArrayOne;

ArrayTwo[1] = 500;

ဒီကုဒ္ေလးရဲ႕ အဆံုးမွာ ArrayOne ႏွင့္ ArrayTwo တို႔ရဲ႕တန္ဖိုးေတြဟာ ဒီလိုမ်ိဴးပါ {100,500,300};

ျပင္လိုက္တာက ArrayTwo ရဲ႕ အခန္း ၂ ကိုပါ၊ ခ်ိတ္ဆက္ထားတဲ့အတြက္ ArrayOne ရဲ႕အခန္း ၂ ပါေျပာင္းလဲသြားပါတယ္။


တကယ္လို႔ array ေတြကိုခ်ိတ္ဆက္မွဳမရွိပဲ ကူးခ်င္တယ္ဆိုရင္ Arrays.copyOf(firstArray, firstArray.length); အဲဒီလိုေရးရမွာပါ။ နမူနာကိုၾကည့္ပါ။

int[] ArrayTwo = Arrays.copyOf(ArrayOne, ArrayOne.length);


Loop ႏွင့္ array

ArrayExample.java ဆိုတဲ့နမူနာကိုၾကည့္ၿပီး ထူးျခားတာတစ္ခုေတြ႔ပါလိမ့္မယ္၊ သေဘာတရားတူတဲ့ ကုဒ္ေတြကို ထပ္ကာထပ္ကာေရးထားပါတယ္၊ ဒါဆိုရင္ loop ကိုသံုးမယ္ဆိုရင္ ကုဒ္ေတြကို ထပ္ကာထပ္ကာေရးစရာမလိုေတာ့ပါဘူး။ array ေတြအတြက္သီးသန္႔ စပယ္ရွယ္ loop တစ္မ်ိဴးရွိပါတယ္၊ အဲဒါကေတာ့ “for each” loop လို႔ေခၚပါတယ္။ ဒီလိုေရးရပါတယ္ for( variable : collection ) { } လို႔ေပါ႔။ for each ရဲ႕သေဘာက ဒီ array သို႔မဟုတ္ collection ထဲက data ေတြကိုတစ္လွည့္စီ loop ပတ္မယ္ဆိုတဲ့သေဘာပါ။ collection အေၾကာင္းကိုေတာ့ ေနာက္မွရွင္းျပေတာ့မယ္၊ array ဆိုတာလည္း collection တစ္မ်ိဴးပါပဲ။ ဒီ for each ထဲက collection ဆိုတဲ့ေနရာမွာ ကိုယ္ loop ပတ္ခ်င္တဲ့ array ဒါမွမဟုတ္ collection ကိုထည့္ရပါမယ္။ variable ဆိုတဲ့ေနရာမွာေတာ့ loop ပတ္တဲ့အေခါက္တိုင္းမွာ collection ထဲက data တစ္ခုခ်င္းစီကို ကိုယ္စားျပဳမယ့္ variable ကိုထည့္ရပါမယ္။ ဒီ variable ရဲ႕ type က array ရဲ႕ type နဲ႔တူရပါမယ္။ ေအာက္ကနမူနာကို ေလ့လာၾကည့္ပါဦး သူ႔ရဲ႕အေျဖက ArrayExample.java ရဲ႕အေျဖနဲ႔အတူတူပါပဲ။

“ShrinkOfArrayExample.java”

class ShrinkOfArrayExample {

public static void main(String[] args) {
int[] intArray = {100, 200, 300, 400, 500, 600, 700, 800, 900, 1000};

for (int i : intArray) {

System.out.println(i);

}

}

}

 

Command Line Parameters

မိတ္ေဆြတို႔ သတိထားမိၾကမွာပါ String[] args ဆိုတဲ့စာသားကို ခဏခဏျမင္ဖူးမွာပါ။ String[] args ဆိုတာ array ပါပဲဆိုတာေျပာစရာမလိုေတာ့ပါဘူး၊ ဒါေပမဲ့ ေျပာစရာေတာ့ရွိပါတယ္။ main ဆိုတဲ့ method ထဲကကုဒ္ေတြ run တဲ့အခ်ိန္မွာ၊ အဲဒီ args ဆိုတဲ့ array ကိုယူသံုး(access)ခြင့္ရွိပါတယ္။ ဒါဆိုေမးစရာရွိတာက အဲဒီ array ကဘယ္ကေနဘယ္လိုေရာက္တာလဲ။ command line ကေန java ဆိုတဲ့ command ကိုရိုက္ၿပီး၊ java class ဖိုင္ကို run လိုက္တဲ့အခ်ိန္မွာ၊ အဲဒီ command ရဲ႕အေနာက္ကေန စာသားတစ္ခုခု ထည့္ေပးလိုက္လို႔ရပါတယ္။ အဲဒီစာသားက args ရဲ႕တန္ဖိုးအေနနဲ႔ args ရဲ႕အခန္းထဲကိုေရာက္သြားမွာပါ။ ဒီလို command ကို java ExampleClass aaaa bbbb cccc စမ္းၾကည့္လိုက္ ရင္ args{“aaaa”, “bbbb”, “cccc”} ဆိုၿပီးေတာ့ args ရဲ႕အခန္းေတြထဲကို string အေနနဲ႔ဝင္သြားမွာပါ။ နမူနာေလးကိုၾကည့္လိုက္ပါဦး။ ေနာက္ေနဒီလိုမ်ိဴး run ေနာ္၊ java Message hello ဒါမွမဟုတ္ java Message hey hi how အဲဒီလိုမ်ိဴး ပံုစံအမ်ိဴးမ်ိဴး run ၾကည့္ပါ။

“Message.java”

public class Message {

public static void main(String[] args) {

for (int i = 1; i < args.length; i++) {

System.out.println( args[i] );

}

}

}

Previous ; Java Tutorial 8

Next : Java Tutorial 10

2 comments:

  1. […] Java Tutorial 9Samsung Tech Institute mobile app trainingJava Tutorial 8breaking news for master thesis 20th batch […]

    ReplyDelete
  2. […] Java Tutorial 10Professional Web Development with PHP – PHP IntroductionJava Tutorial 9Samsung Tech Institute mobile app trainingJava Tutorial 8breaking news for master thesis 20th batch […]

    ReplyDelete