آموزش برنامه نویسی اندروید (Android)
۴۱۹ آموزش
نمایش دسته بندی ها (۴۱۹ آموزش)

ساخت یک لیست آرایه ای (ArrayList)، در برنامه نویسی اندروید

برای ساخت یک لیست آرایه ای (ArrayList) با نام myList ، که عناصر آن به صورت رشته (string) باشند، کدهای زیر را می نویسیم :


ArrayList<String> myList = new ArrayList<String>();

کد بالا برای زمانی است که تعداد عناصر لیست آرایه ای (ArrayList) را ندانیم، اگر تعداد عناصر را بدانیم، می توانیم لیست آرایه ای (ArrayList) را از طریق کدهای زیر بسازیم (به عنوان مثال، تعداد عناصر را برابر 10 فرض کرده ایم) :


ArrayList<String> myList = new ArrayList<String>(10);

برای تعیین عناصر لیست آرایه ای (ArrayList) در همان ابتدای ساخت آن، می توانیم مشابه کد زیر عمل کنیم :


ArrayList<String> myList = new ArrayList<String>() {{
    add("A");
    add("B");
    add("C");
}};

برای افزودن یک عنصر جدید به لیست آرایه ای (ArrayList)، بعد از تعریف اولیه آن، آموزش شماره 315 را بخوانید.

نکته مهم

به کد زیر توجه کنید، این کد باعث ایجاد خطا و بسته شدن برنامه اندروید خواهد شد :


ArrayList<String> myList = new ArrayList<String>(10);
myList.set(5, "newString");

اما این پرسش مطرح است که دلیل ایجاد خطا چیست، تنها عملیاتی که انجام داده ایم، این است که عنصر ششم آرایه را مقداردهی کرده ایم (شماره عناصر از 0 شروع می شود، بنابراین اندیس 5 متناظر با عنصر ششم لیست آرایه ای است). ایجاد خطا به این دلیل است که در خط اول کدها، تنها ظرفیت (capacity) لیست آرایه ای (ArrayList) را مشخص کرده ایم، نه اندازه (size) آن را. در واقع، لیست آرایه ای (ArrayList) که ساخته ایم، خالی (empty) می باشد.

اگر می خواهیم که حتما عنصر ششم لیست آرایه ای (ArrayList) را مقدار دهی کنیم، می توانیم کدهای زیر را بنویسیم :


ArrayList<String> myList = new ArrayList<String>(10);
for (int i = 0; i < 10; i++) {
    myList.add("");
}
myList.set(5, "newString");

در این کدها، ابتدا با روش add ، تعداد 10 عنصر را به لیست آرایه ای (ArrayList) افزوده ایم که همگی آنها، برابر رشته (string) تهی می باشند. سپس عنصر ششم را برابر رشته (string) مورد نظرمان قرار داده ایم.

بد نیست این نکته را یادآوری کنیم که اگر مجبور نیستید که حتما از لیست آرایه ای (ArrayList) استفاده کنید، می توانید مقادیر مورد نظرتان را در یک آرایه از رشته ها (string) ذخیره کنید (یا آرایه ای از هر نوع که می خواهید، مثلا Integer و ...). همانند کد زیر :


String [] all_strings = new String [10];
all_strings [5] = "newString";

مشاهده می کنید که اگر یک آرایه از رشته ها (string) داشته باشیم، می توانیم هر عنصر دلخواه از آن را مقداردهی کنیم و خطایی هم ایجاد نخواهد شد.

نکته

کدهایی که در ابتدای این مبحث ذکر کردیم، برای ساخت یک لیست آرایه ای (ArrayList) بود که عناصر آن، به صورت رشته (string) هستند، چنانچه قصد داریم که عناصر لیست آرایه ای (ArrayList) از نوع دیگری باشند، باید به جای عبارت String ، عبارت مربوط به آن نوع متغیر را بنویسیم. مثلا اگر بخواهیم که عناصر لیست آرایه ای (ArrayList)، از نوع Integer باشند، کدهای زیر را می نویسیم :


ArrayList<Integer> myList = new ArrayList<Integer>(10);
نویسنده علیرضا گلمکانی
شماره کلید 314
گزینه ها
به اشتراک گذاری (Share) در شبکه های اجتماعی
نظرات 5 5 0
سعید
۱۳۹۵/۰۶/۲۹
۱۷:۲۲

خدا خیرت بده ادمین جون .نمی دونی چقدر کار منو راحت کردی

مطالب سایتت فوق العاده اند 

سید حسین هاشمی
۱۳۹۷/۰۵/۰۷
۱۸:۵۴

مرسی ادمین عالی بود کارم  و راحت کرد فقط یه سوال میشه برای ارایه درست کردن از یه سری ادیت تکست ازین روش استفاده کرد یا خیر ؟!

حسین
۱۳۹۸/۰۱/۲۲
۱۰:۰۲

سلام . از آموزش شما متشکرم بسیار عالی و مفید بود فقط اگر لطف می کردید و شرح می دادید که هرکدام کجا کاربرد دارند اطلاعاتم کاربردی تر می شد. ممنون خدا خیرتان بدهد

فروزان شفیعی
۱۳۹۸/۰۲/۳۰
۱۹:۰۷

سلام چطور بدون دونستن سایز آرایه، ارایه توسط کاربر پر بشه؟

َAbolfazl
۱۳۹۹/۰۹/۱۳
۲۲:۲۰

ببین فروزان جان . ArrayList لازم نیست که بهش سایز یا همان تعداد اندیس ها (index) داده بشه و برای گرفتن تعداد اندیس(Index) هایی که داده یا همان مقداری با توجه به متغییر ما دارند از تابع ()size. استفاده میکنیم . حالا اگر من سوالت رو متوجه نشدم ببخشید

ارسال نظر جدید (بدون نیاز به عضو بودن در وب سایت)