December 8, 2011

Java Arrays

Java ဘာသာ​ရပ်​အကြောင်း ရေးသား​ထား​သော စာအုပ်​အတော်​များ⁠များ​တွင် Arrayအကြောင်း ရေးသား​ချက်​များ​ကို ဖတ်​ကြည့်​ပါ​က ကြေ​နပ်​ဖွယ်​ကောင်း​လောက်​အောင် ရေးသား​ချက်​များ​ရေးသား​ထား​သည်မှာ အလွန်​နည်းပါး​လှ​ပေ​သည်။ အဘယ်​ကြောင့်​ဆိုသော်Java ၏ Array သည် Instance တစ်​ခု​ဖြစ်​သော​ကြောင့်​၎င်း၊ Java ၌ Multiple Dimensions Array ကို ရေးသား​၍ မ​ဖြစ်​သော​ကြောင့်​၎င်း အစ​ရှိ​သော အကြောင်း​များ​ကြောင့် ဖြစ်​သည်​ဟု ထင်​ပါ​သည်။ Java ၌ Multiple Dimensions Array ကို ရေးသား​၍ မ​ရ​ကြောင်း ပြော​လျှင် အံ့​သြ​သော​သူ​များ​ပင် ရှိ​နေ​ပေ​သည်။

Java ၏ Array သည် Classတစ်​မျိုး​ဖြစ်​၏

Java ၏ Arrayများ​ကို​နားလည်​စေ​ရန် သတိထား​စရာ အချက်​မှာ Java ၏ Array သည် Reference Type ဖြစ်​သည် ဆို​သည့် အချက် ပင်​ဖြစ်​သည်။ သည်လို​ပြော​၍​လည်း နားလည်​ရ​ခက်​သေး​သည် ဆို​လျှင် Array သည် Class အမျိုး​အစား​တစ်​ခု​ဖြစ်​သည် ဟု​ဆို​ပါ​က ပို​၍​နားလည် လွယ်​မည်​ဟု​ထင်​ပါ​သည်။ ပို​၍​သိသာ​သော အချက်​မှာ အောက်​ပါ​န​မှု​နာ စာ​ကြောင်း​ကို ကြည့်​မည်​ဆို​ပါ​က Array သည် Instance အဖြစ်​လုပ်​ယူ​နေ​ကြောင်း သိရှိ​နိုင်​မည်​ဖြစ်​သည်။

int [] intArray = new int [5];

အထက်​ပါ စာ​ကြောင်း​ကို​ကြည့်​မည် ဆို​ပါ​က new ကို​အသုံးပြု​ပြီး int ၅​ခု​စာ Array ကို​လုပ်​ယူ​နေ​ကြောင်း​ကို သိရှိ​နိုင်​ပေ​သည်။ ဤ​စာ​ကြောင်း​ကို ကြည့်​ခြင်း​အား​ဖြင့် Array သည် Reference Type ဖြစ်​ကြောင်း သိရှိ​နိုင်​ပေ​သည်။ တ​ဖန် Java Array အကြောင်း​ကို ရှုပ်​ထွေး​စွာ အမှတ်​မှား​စေ​လို​သော အကြောင်းအရာ​များ ရှိ​ပေ​သေး​သည်။ အောက်​ပါ​စာ​ကြောင်း​ကို ကြည့်​ရှု​ပါ။

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

Java ကို​စတင်​လေ့​လာ​သူ​များ​ကို စိတ်ရှုပ်​စေသော အကြောင်းအရာ​တစ်​ခု​ဖြစ်​သည်။ Primitive Type တစ်​ခု​ဟု အထင်မှား​စေသော အကြောင်း တစ်​ခု​ဖြစ်​ပေ​သည်။ Instance ချ​ပုံ​အတိုင်း ရေးသား​မည်​ဆို​ပါ​က အောက်​ပါ​အတိုင်း​ဖြစ်​ပေ​သည်။

int [] intArray = new int [] {1,2,3,4,5};

intArray Instance ကို စတင်​လုပ်​ယူ​နေ​သော​အခါ int [] constructor အား [1,2,3,4,5] အချက်အလက် များ​ကို​ပေး​နေ​သည်​ဟု မှတ်ယူ​နိုင်​ပေ​သည်။ Array သည် Class တစ်​ခု​ရဲ့ Instance ဖြစ်​မှန်း သိ​အောင် လက်တွေ့ Code များ​ကို ရေး​ကြည့်​ကြ​ရအောင်။

public class ArrayTest {
        public static void main(String [] args) {
                int [] a = new int [] {1,2,3,4,};
                int [] b = a.clone();
                for(int i : b)
                        System.out.print(i + ",");
               System.out.println();
                if (a == b)
                        System.out.println("Same Instance");
                else 
                        System.out.println("Different Instance");
        }
}

အထက်​ပါ ArrayTest Class၏ int [] b = a.clone()စာ​ကြောင်း​ကို သတိထား​ကြည့်⁠ကြည့်​ပါ။ int [] b instance ကို instance a အား cloneပွား​ယူ​ခြင်း​ဖြင့် လုပ်​ယူ​နေ​သည်​ကို တွေ့​ရ​ပေ​မည်။ clone() လုပ်ဆောင်​ချက်​သည် java.lang.Object Classက​ပိုင်ဆိုင်​သော လုပ်ဆောင်​ချက်​ဖြစ်​ပြီး java.lang.Object၏ sub class များ အားလုံး​သည်​လည်း အသုံးပြု​နိုင်​ပေ​သည်။ Java ၏ Classများ​အားလုံး​သည် java.lang.Object ရဲ့ sub class များ​ဖြစ်​ကြ​သော​ကြောင့် Array Class ဖြစ်​သော int [] ၏ instance သည်​လည်း clone() လုပ်ဆောင်​ချက်​ကို အသုံးပြု​နိုင်​ခြင်း​ဖြစ်​သည်။

အမြန်​မှတ်ချက်

Java ဘာသာ​ရပ်​၌ Arrayသည် Classအမျိုး​အစား​တစ်​မျိုး​ဖြစ်​၏။ ထို့​ကြောင့် Array ၏ instance များ​သည် java.lang.Object ၏ member fields များ၊ method များ​ကို အသုံးပြု​နိုင် ပေ​သည်။

Java ၌ Multiple Dimensions Arrayကို​ရေးသား​၍​မ​ရ

တ​ဖန် စိတ်​မ​ကောင်း​စရာ​အချက်​တစ်​ခု​ဖြစ်​သော Java Array တွင် Multi Dimensions Array များ​ကို အသုံးပြု​၍​မ​ရ​ကြောင်း ကို​လေ့​လာ​ကြည့်​ပါ​ဦး​မည်။ C ကဲ့သို့​သော အခြား​သော ဘာသာ​ရပ်​များ​ကို​လေ့​လာ​ခဲ့​ဘူး​သူ​များ​သည် Javaတွင်​လည်း Multiple Dimensions Array များ​ကို အသုံးပြု​နိုင်​လိမ့်​မည်​ဟု ထင်မှတ်​မှား​တတ်​ကြ​ပေ​သည်။ အကြောင်း​မှာ အောက်​ပါ​အတိုင်း ထင်​ယောင်​ထင်​မှား ဖြစ်​စေသော ရေးသား​ချက်​များ ကြောင့်​ဖြစ်​သည်။

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

အထက်​ပါ ရေးသား​ပုံ​ကို​ကြည့်​မည်​ဆို​လျှင် int[][]အား 2D Arrayဟု ထင်မှတ်​မှား​ကြ​ပေ​လိမ့်​မည်။ အမှန်​မှာ int[] instance ကို ပိုင်ဆိုင်​သော Array တစ်​ခု​ပင်​ဖြစ်​ပေ​သည်။ အခြား​သော Array များ​ကဲ့သို့​ပင် Class အမျိုး​အစား​တစ်​ခု​ပင်​ဖြစ်​၏။
ဤ​အချက်​ကို​လေ့​လာ​ကြည့်​ကြ​ရအောင်။ အောက်​ပါ​ရေးသား​ချက်​ကို​ကြည့်​ပါ။

int [][] array = new int [] {{1,2,3},{4,5}};

အကဲ​၍ int[][] သည် 2D Array ဆို​ပါ​က အထက်​ပါ​ရေးသား​ချက်​တွင် Compile Errorဖြစ်ပေါ်​မည် ဖြစ်​သည်။ Java တွင် အထက်​ပါ​ရေးသား​ချက်​သည် Errorမ​ဖြစ်​ပါ။ အဘယ်​ကြောင့်​ဆိုသော် အထက်​ပါ​ရေးသား​ချက်​သည် int [] instance နှစ်​ခု​ပါဝင်​သော Array တစ်​ခု​သာ​ဖြစ်​သော​ကြောင့် ဖြစ်​ပါ​သည်။

အမြန်​မှတ်ချက်

Java တွင် Multiple Dimensions Array ဟူ​သော Data Type သည် အသုံးပြု​၍ မ​ရ​နိုင်​ပေ။ Java Array ၏ သုံး​လို့​ရ​သော​အချက်​များ သုံး​မ​ရ​သော အရာ​ချက်​များ​ကို သိရှိ​ထား​မည်​ဆို​ပါ​က Array များ​ကို​အသုံးပြု​ရာ​တွင် အခက်​အခဲ​ရှိ​တော့​မည်​မဟုတ်​ပေ။

No comments:

Post a Comment