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

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
فهرست مطالب:

  1. ساخت یک لیست آرایه ای (ArrayList)، در برنامه نویسی اندروید
  2. افزودن یک عنصر جدید، به یک لیست آرایه ای (ArrayList)، در برنامه نویسی اندروید
  3. حذف یک عنصر از یک لیست آرایه ای (ArrayList)، در برنامه نویسی اندروید
  4. به دست آوردن اندازه (تعداد عناصر) یک لیست آرایه ای (ArrayList)، در برنامه نویسی اندروید
  5. دریافت یک عنصر از یک لیست آرایه ای (ArrayList) و ذخیره آن در متغیری دیگر، در برنامه نویسی اندروید
  6. تغییر مقدار یک عنصر، در یک لیست آرایه ای (ArrayList)، در برنامه نویسی اندروید


منبع: kelidestan
 

P O U R I A

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

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

برای ساخت یک لیست آرایه ای (ArrayList) با نام myList ، که عناصر آن به صورت رشته (string) باشند، کدهای زیر را می نویسیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]ArrayList[COLOR=#339933]<[/COLOR]String[COLOR=#339933]>[/COLOR] myList [COLOR=#339933]=[/COLOR] [B]new[/B] ArrayList[COLOR=#339933]<[/COLOR]String[COLOR=#339933]>[/COLOR][COLOR=#009900]([/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR][/FONT]
[/FONT][/COLOR]
کد بالا برای زمانی است که تعداد عناصر لیست آرایه ای (ArrayList) را ندانیم، اگر تعداد عناصر را بدانیم، می توانیم لیست آرایه ای (ArrayList) را از طریق کدهای زیر بسازیم (به عنوان مثال، تعداد عناصر را برابر 10 فرض کرده ایم) :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]ArrayList[COLOR=#339933]<[/COLOR]String[COLOR=#339933]>[/COLOR] myList [COLOR=#339933]=[/COLOR] [B]new[/B] ArrayList[COLOR=#339933]<[/COLOR]String[COLOR=#339933]>[/COLOR][COLOR=#009900]([/COLOR][COLOR=#CC66CC]10[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR][/FONT]
[/FONT][/COLOR]
برای تعیین عناصر لیست آرایه ای (ArrayList) در همان ابتدای ساخت آن، می توانیم مشابه کد زیر عمل کنیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]ArrayList[COLOR=#339933]<[/COLOR]String[COLOR=#339933]>[/COLOR] myList [COLOR=#339933]=[/COLOR] [B]new[/B] ArrayList[COLOR=#339933]<[/COLOR]String[COLOR=#339933]>[/COLOR][COLOR=#009900]([/COLOR][COLOR=#009900])[/COLOR] [COLOR=#009900]{[/COLOR][COLOR=#009900]{[/COLOR]
    add[COLOR=#009900]([/COLOR][COLOR=#0000FF]"A"[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
    add[COLOR=#009900]([/COLOR][COLOR=#0000FF]"B"[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
    add[COLOR=#009900]([/COLOR][COLOR=#0000FF]"C"[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#009900]}[/COLOR][COLOR=#009900]}[/COLOR][COLOR=#339933];[/COLOR][/FONT]
[/FONT][/COLOR]
برای افزودن یک عنصر جدید به لیست آرایه ای (ArrayList)، بعد از تعریف اولیه آن، پست بعدی را بخوانید.

[h=4]نکته مهم :[/h]به کد زیر توجه کنید، این کد باعث ایجاد خطا و بسته شدن برنامه اندروید خواهد شد :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]ArrayList[COLOR=#339933]<[/COLOR]String[COLOR=#339933]>[/COLOR] myList [COLOR=#339933]=[/COLOR] [B]new[/B] ArrayList[COLOR=#339933]<[/COLOR]String[COLOR=#339933]>[/COLOR][COLOR=#009900]([/COLOR][COLOR=#CC66CC]10[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
myList.[COLOR=#006633]set[/COLOR][COLOR=#009900]([/COLOR][COLOR=#CC66CC]5[/COLOR], [COLOR=#0000FF]"newString"[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR][/FONT]
[/FONT][/COLOR]
اما این پرسش مطرح است که دلیل ایجاد خطا چیست، تنها عملیاتی که انجام داده ایم، این است که عنصر ششم آرایه را مقداردهی کرده ایم (شماره عناصر از 0 شروع می شود، بنابراین اندیس 5 متناظر با عنصر ششم لیست آرایه ای است). ایجاد خطا به این دلیل است که در خط اول کدها، تنها ظرفیت (capacity) لیست آرایه ای (ArrayList) را مشخص کرده ایم، نه اندازه (size) آن را. در واقع، لیست آرایه ای (ArrayList) که ساخته ایم، خالی (empty) می باشد.

اگر می خواهیم که حتما عنصر ششم لیست آرایه ای (ArrayList) را مقدار دهی کنیم، می توانیم کدهای زیر را بنویسیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]ArrayList[COLOR=#339933]<[/COLOR]String[COLOR=#339933]>[/COLOR] myList [COLOR=#339933]=[/COLOR] [B]new[/B] ArrayList[COLOR=#339933]<[/COLOR]String[COLOR=#339933]>[/COLOR][COLOR=#009900]([/COLOR][COLOR=#CC66CC]10[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[B]for[/B] [COLOR=#009900]([/COLOR][COLOR=#000066][B]int[/B][/COLOR] i [COLOR=#339933]=[/COLOR] [COLOR=#CC66CC]0[/COLOR][COLOR=#339933];[/COLOR] i [COLOR=#339933]<[/COLOR] [COLOR=#CC66CC]10[/COLOR][COLOR=#339933];[/COLOR] i[COLOR=#339933]++[/COLOR][COLOR=#009900])[/COLOR] [COLOR=#009900]{[/COLOR]
    myList.[COLOR=#006633]add[/COLOR][COLOR=#009900]([/COLOR][COLOR=#0000FF]""[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#009900]}[/COLOR]
myList.[COLOR=#006633]set[/COLOR][COLOR=#009900]([/COLOR][COLOR=#CC66CC]5[/COLOR], [COLOR=#0000FF]"newString"[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR][/FONT]
[/FONT][/COLOR]
در این کدها، ابتدا با روش add ، تعداد 10 عنصر را به لیست آرایه ای (ArrayList) افزوده ایم که همگی آنها، برابر رشته (string) تهی می باشند. سپس عنصر ششم را برابر رشته (string) مورد نظرمان قرار داده ایم.

بد نیست این نکته را یادآوری کنیم که اگر مجبور نیستید که حتما از لیست آرایه ای (ArrayList) استفاده کنید، می توانید مقادیر مورد نظرتان را در یک آرایه از رشته ها (string) ذخیره کنید (یا آرایه ای از هر نوع که می خواهید، مثلا Integer و ...). همانند کد زیر :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#003399]String[/COLOR] [COLOR=#009900][[/COLOR][COLOR=#009900]][/COLOR] all_strings [COLOR=#339933]=[/COLOR] [B]new[/B] [COLOR=#003399]String[/COLOR] [COLOR=#009900][[/COLOR][COLOR=#CC66CC]10[/COLOR][COLOR=#009900]][/COLOR][COLOR=#339933];[/COLOR]
all_strings [COLOR=#009900][[/COLOR][COLOR=#CC66CC]5[/COLOR][COLOR=#009900]][/COLOR] [COLOR=#339933]=[/COLOR] [COLOR=#0000FF]"newString"[/COLOR][COLOR=#339933];[/COLOR][/FONT]
[/FONT][/COLOR]
مشاهده می کنید که اگر یک آرایه از رشته ها (string) داشته باشیم، می توانیم هر عنصر دلخواه از آن را مقداردهی کنیم و خطایی هم ایجاد نخواهد شد.

[h=4]نکته :[/h]کدهایی که در ابتدای این مبحث ذکر کردیم، برای ساخت یک لیست آرایه ای (ArrayList) بود که عناصر آن، به صورت رشته (string) هستند، چنانچه قصد داریم که عناصر لیست آرایه ای (ArrayList) از نوع دیگری باشند، باید به جای عبارت String ، عبارت مربوط به آن نوع متغیر را بنویسیم. مثلا اگر بخواهیم که عناصر لیست آرایه ای (ArrayList)، از نوع Integer باشند، کدهای زیر را می نویسیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]ArrayList[COLOR=#339933]<[/COLOR]Integer[COLOR=#339933]>[/COLOR] myList [COLOR=#339933]=[/COLOR] [B]new[/B] ArrayList[COLOR=#339933]<[/COLOR]Integer[COLOR=#339933]>[/COLOR][COLOR=#009900]([/COLOR][COLOR=#CC66CC]10[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR][/FONT]
[/FONT][/COLOR]
 

P O U R I A

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

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

فرض کنید یک لیست آرایه ای (ArrayList) با نام myList داریم که عناصر آن، رشته (string) می باشند، برای افزودن یک عنصر جدید (یک رشته جدید) به لیست آرایه ای (ArrayList)، کدهای زیر را می نویسیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]myList.[COLOR=#006633]add[/COLOR][COLOR=#009900]([/COLOR][COLOR=#0000FF]"newString"[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR][/FONT]
[/FONT][/COLOR]
 

P O U R I A

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

حذف یک عنصر از یک لیست آرایه ای (ArrayList)، در برنامه نویسی اندروید

فرض کنید یک لیست آرایه ای (ArrayList) با نام myList داریم که عناصر آن، رشته (string) می باشند، برای حذف یک عنصر از لیست آرایه ای (ArrayList)، کدهای زیر را می نویسیم (شماره متناظر با عنصر را برابر 5 در نظر گرفته ایم، دقت داشته باشید که اولین عنصر دارای شماره متناظر 0 می باشد، نه 1) :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]myList.[COLOR=#006633]remove[/COLOR][COLOR=#009900]([/COLOR][COLOR=#CC66CC]5[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR][/FONT]
[/FONT][/COLOR]
بنابراین ششمین عنصر از لیست آرایه ای حذف می شود.
 

P O U R I A

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

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

فرض کنید که یک لیست آرایه ای (ArrayList) با نام myList داریم و می خواهیم که اندازه (تعداد عناصر) آن را به دست آوریم، برای این منظور، کدهای زیر را می نویسیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#000066][B]int[/B][/COLOR] myList_size [COLOR=#339933]=[/COLOR] myList.[COLOR=#006633]size[/COLOR][COLOR=#009900]([/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR][/FONT]
[/FONT][/COLOR]
بنابراین تعداد عناصر لیست آرایه ای (ArrayList)، در متغیری با نام myList_size ذخیره خواهد شد.
 

P O U R I A

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

دریافت یک عنصر از یک لیست آرایه ای (ArrayList) و ذخیره آن در متغیری دیگر، در برنامه نویسی اندروید

فرض کنید که یک لیست آرایه ای (ArrayList) با نام myList داریم که عناصر آن، رشته (string) می باشند. همچنین فرض کنید قصد داریم که یکی از عناصر آن را دریافت کرده و در متغیری دیگر ذخیره کنیم، برای این منظور، کدهای زیر را می نویسیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#003399]String[/COLOR] data [COLOR=#339933]=[/COLOR] myList.[COLOR=#006633]get[/COLOR][COLOR=#009900]([/COLOR]position[COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR][/FONT]
[/FONT][/COLOR]
در کد بالا، باید به جای کلمه position ، یک عدد را بنویسید که موقعیت عنصر مورد نظرتان در لیست آرایه ای (ArrayList) را نشان می دهد. آن عنصر، در یک متغیر رشته ای (string) با نام data ذخیره خواهد شد.

[h=4]نکته :[/h]کد بالا، برای یک لیست آرایه ای (ArrayList) بود که عناصر آن، به صورت رشته (string) بودند، چنانچه عناصر از نوع دیگری باشند، باید عنصر را در متغیری از جنس همان نوع، ذخیره کنیم.

[h=4]نکته :[/h]دقت کنید که شماره عناصر یک لیست آرایه ای (ArrayList)، از عدد صفر شروع می شود (نه عدد 1).
 

P O U R I A

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

تغییر مقدار یک عنصر، در یک لیست آرایه ای (ArrayList)، در برنامه نویسی اندروید

فرض کنید که یک لیست آرایه ای (ArrayList) با نام myList داریم که دارای تعدادی عنصر از نوع رشته (string) است و قصد داریم که مثلا مقدار عنصر ششم آن را تغییر بدهیم، برای این منظور، کدهای زیر را می نویسیم (چون شماره اندیس عناصر از 0 شروع می شود بنابراین باید برای عنصر ششم، اندیس 5 را بگذاریم) :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]myList.[COLOR=#006633]set[/COLOR][COLOR=#009900]([/COLOR][COLOR=#CC66CC]5[/COLOR], [COLOR=#0000FF]"newString"[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR][/FONT]
[/FONT][/COLOR]
همان طور که مشاهده می کنید، از روش set استفاده کرده ایم.

دقت کنید که این عنصر، باید قبلا مقداردهی شده باشد، در غیر این صورت، یک خطا ایجاد شده و اجرای برنامه اندروید، متوقف می شود. برای درک بهتر این موضوع، به نکته زیر توجه کنید :

[h=4]نکته مهم :[/h]به کد زیر توجه کنید، این کد باعث ایجاد خطا و بسته شدن برنامه اندروید خواهد شد :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]ArrayList[COLOR=#339933]<[/COLOR]String[COLOR=#339933]>[/COLOR] myList [COLOR=#339933]=[/COLOR] [B]new[/B] ArrayList[COLOR=#339933]<[/COLOR]String[COLOR=#339933]>[/COLOR][COLOR=#009900]([/COLOR][COLOR=#CC66CC]10[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
myList.[COLOR=#006633]set[/COLOR][COLOR=#009900]([/COLOR][COLOR=#CC66CC]5[/COLOR], [COLOR=#0000FF]"newString"[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR][/FONT]
[/FONT][/COLOR]
اما این پرسش مطرح است که دلیل ایجاد خطا چیست، تنها عملیاتی که انجام داده ایم، این است که عنصر ششم آرایه را مقداردهی کرده ایم (شماره عناصر از 0 شروع می شود، بنابراین اندیس 5 متناظر با عنصر ششم لیست آرایه ای است). ایجاد خطا به این دلیل است که در خط اول کدها، تنها ظرفیت (capacity) لیست آرایه ای (ArrayList) را مشخص کرده ایم، نه اندازه (size) آن را. در واقع، لیست آرایه ای (ArrayList) که ساخته ایم، خالی (empty) می باشد.

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

کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]ArrayList[COLOR=#339933]<[/COLOR]String[COLOR=#339933]>[/COLOR] myList [COLOR=#339933]=[/COLOR] [B]new[/B] ArrayList[COLOR=#339933]<[/COLOR]String[COLOR=#339933]>[/COLOR][COLOR=#009900]([/COLOR][COLOR=#CC66CC]10[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[B]for[/B] [COLOR=#009900]([/COLOR][COLOR=#000066][B]int[/B][/COLOR] i [COLOR=#339933]=[/COLOR] [COLOR=#CC66CC]0[/COLOR][COLOR=#339933];[/COLOR] i [COLOR=#339933]<[/COLOR] [COLOR=#CC66CC]10[/COLOR][COLOR=#339933];[/COLOR] i[COLOR=#339933]++[/COLOR][COLOR=#009900])[/COLOR] [COLOR=#009900]{[/COLOR]
    myList.[COLOR=#006633]add[/COLOR][COLOR=#009900]([/COLOR][COLOR=#0000FF]""[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#009900]}[/COLOR]
myList.[COLOR=#006633]set[/COLOR][COLOR=#009900]([/COLOR][COLOR=#CC66CC]5[/COLOR], [COLOR=#0000FF]"newString"[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR][/FONT]
[/FONT][/COLOR]
در این کدها، ابتدا با روش add ، تعداد 10 عنصر را به لیست آرایه ای (ArrayList) افزوده ایم که همگی آنها، برابر رشته (string) تهی می باشند. سپس عنصر ششم را برابر رشته (string) مورد نظرمان قرار داده ایم.

بد نیست این نکته را یادآوری کنیم که اگر مجبور نیستید که حتما از لیست آرایه ای (ArrayList) استفاده کنید، می توانید مقادیر مورد نظرتان را در یک آرایه از رشته ها (string) ذخیره کنید (یا آرایه ای از هر نوع که می خواهید، مثلا Integer و ...). همانند کد زیر :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#003399]String[/COLOR] [COLOR=#009900][[/COLOR][COLOR=#009900]][/COLOR] all_strings [COLOR=#339933]=[/COLOR] [B]new[/B] [COLOR=#003399]String[/COLOR] [COLOR=#009900][[/COLOR][COLOR=#CC66CC]10[/COLOR][COLOR=#009900]][/COLOR][COLOR=#339933];[/COLOR]
all_strings [COLOR=#009900][[/COLOR][COLOR=#CC66CC]5[/COLOR][COLOR=#009900]][/COLOR] [COLOR=#339933]=[/COLOR] [COLOR=#0000FF]"newString"[/COLOR][COLOR=#339933];[/COLOR][/FONT]
[/FONT][/COLOR]
مشاهده می کنید که اگر یک آرایه از رشته ها (string) داشته باشیم، می توانیم هر عنصر دلخواه از آن را مقداردهی کنیم و خطایی هم ایجاد نخواهد شد.
 
بالا