رفتن به مطلب

آرایه های استاتیک ( Static ) و آرایه های پویا ( Dynamic ) در جاوا


مجید آرتا

ارسال‌های توصیه شده

به نام خدا

سلام

خب اولین پست آموزشی بنده برای برنامه نویسی آندروید به زبان جاوا هستش و امیدوارم که بتونم موثر واقع بشم

خب دوستان ما توی بیسیک هم این حالت رو داشتیم آرایه های استاتیک رو به این شکل تعریف می کردیم :

Dim numbers() As Int
numbers = Array As Int( 2 , 4 , 6)

خب با یک نگاه ساده درک می کنیم که این آرایه 3 خانه و یا 3 عنصر داره و به خاطر استاتیک بودن ( ایستا ) ما بیشتر از 3 تا عدد نمیتونیم بهش نسبت بدیم.

و اندیس ها این آرایه به این شکل هستش :

0

1

2

پس یاد گرفتیم که شماره آرایه از 0 شروع میشه   و ایستا بودن اینجا مشخص میشه که شما اگه بخوایید عنصری با شماره اندیس 3 وارد کنید اینجاست که کامپایلر ازتون خطا می گیره و بهتون اخطار داده میشه که آرایه شما 3 عنصر بیشتر ظرفیت نداره.

حالا همین نوع آرایه در زبان جاوا به این شکل هستش :

int[] num = new int[10];

خب این آرایه رو میتونیم به شکل های مختلفی بهش مقدار بدیم

روش اول :

        for (int j = 0; j < num.length; j++) {
            num[j] = j * 3;
        }

روش دوم همون اول به صورت دستی می تونیم بهش مقدار بدیم :

int[] num = new int[]{ 2, 4, 6, 8, 10 };

نوع دوم آرایه ها ، آرایه های پویا و یا داینامیک که معادلش توی بیسیک به این صورت هستش :

Dim L As List
L.Initialize
L.Add("Majid")
L.Add("Mehdi")
L.Add("AnswerCenter")

'Or

L.AddAll(Array As String("Majid","Mehdi","AnswerCenter"))

توی این حالت نیازی نیست تعداد عناصر رو تعریف کنیم و محدود کنیم.

حالا به زبان جاوا :

        ArrayList<String> strList = new ArrayList<String>();
        strList.add("Majid");
        strList.add("Mehdi");
        strList.add("Yaser");
        strList.add("Arsalan");
        strList.add("Mostafa");

یک آرایه از نوع String  اما به صورت پویا تعریف کردیم.

 

داخل <> نوع آرایه رو تعریف می کنیم که باید کلاس باشه.

حالا آرایه از نوع عددی و اضافه کردن مقدار :

        ArrayList<Integer> numbers = new ArrayList<Integer>();

        for (int i = 0; i < 100; i++) {
            numbers.add(i * 2);
        }

حالا به چه شکل میتونیم اطلاعات رو بگیریم از این آرایه ها ؟

به این شکل :

       for (int j = 0; j < numbers.size(); j++) {
            Log.i("LOG", "Dynamic Array Index #" + j + "=" + numbers.get(j));
        }

که مستفیما میاییم Get  می کنیم.

 

روش دیگه که برای گرفتن مقدار هستش و نیازی به اندیس نداریم :

        //For Each
        for (int num: numbers) {
            int index = numbers.indexOf(num);
            Log.i("LOG", "Dynamic Array Index #" + index + " = " + num);
        }

هر دفعه مقدار اندیس توی متغییر num  ریخته میشه و مقدار متناظرش کرفته میشه.

 

در این باره مشکلی بود بپرسید.

آموزشی از AnswerCenter

موفق باشید.

لینک ارسال
به اشتراک گذاری در سایت های دیگر

بایگانی شده

این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.

  • کاربران آنلاین در این صفحه   0 کاربر

    • هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.
×
×
  • اضافه کردن...