PDA

View Full Version : arraylist دو بعدی



web4ir
پنج شنبه 26 بهمن 1385, 10:47 صبح
سلام
آیا میشه arraylist دو بعدی هم داشت؟
یعنی [][]temp که آرایه نباشه بلکه arraylist باشه

PC2st
پنج شنبه 26 بهمن 1385, 11:21 صبح
شئ ArrayList هم میتونه توی یک آرایه قرار بگیره...

;[ArrayList[] temp = new ArrayList[3
;()temp[0] = new ArrayList
;()temp[1] = new ArrayList
;()temp[2] = new ArrayList

البته میتونه یک آرایه، بصورت آرایه‌ای از آرایه هم تعریف بشه، در اینصورت قبل از استفاده از اون، حتما باید یک طول برای بالاترین آرایه (!) رو مشخص کرد، که در زیر، طول اون رو 3 در نظر گرفتیم:

;[][int[][] temp = new int[3
;[temp[0][] = new int[2
;[temp[1][] = new int[4
;[temp[2][] = new int[1
;temp[0][0] = 78
;temp[0][1] = 18
;temp[1][0] = 22
;temp[1][1] = 82
;temp[1][2] = 15
;temp[1][3] = 24
;temp[2][0] = 64

در بالا، در واقع [temp[0 و [temp[1 و ... خودشون هم یک آرایه هستند (ولی طولهاشون با هم فرق میکنه).
البته آرایه دوبعدی با آرایه‌ای از آرایه (مثل بالا) فرق میکنه، مثل زیر:

;[int[,] temp = new int[4,3
;temp[0,0] = 12
;temp[1,0] = 15
;temp[0,1] = 10
...
...

pesare_ariyayi
دوشنبه 04 شهریور 1387, 17:11 عصر
وقتی میخوایم این arraylist دوبعدی رو فراخونی کنیم باید چی کنیم؟
temp[][] درسته؟ من تو .net این کار رو می کنم و جواب نمیده.

Alen
سه شنبه 05 شهریور 1387, 08:53 صبح
من اين كارو مي كنم اول، بعد اول رو ميخونم با يه همچين دستوري


temp1=(arraylist)temp2[0]

حالا يه arraylist معمولي در اختيار دارم كه هر بلايي دلم بخواد ميتونم سرش بيارم

mehdi.mousavi
سه شنبه 05 شهریور 1387, 11:21 صبح
سلام آیا میشه arraylist دو بعدی هم داشت؟ یعنی [][]temp که آرایه نباشه بلکه arraylist باشه

سلام.
من توصیه میکنم جای ArrayList از System.Collections.Generic.List استفاده کنید. چون همونطوریکه میدونید، ArrayList لیستی از Object ها نگه میداره، و دسترسی به خونه های یه ArrayList میتونه باعث عمل Boxing/Unboxing بشه، که در نوع خودش هزینه بره.

pesare_ariyayi
سه شنبه 05 شهریور 1387, 11:32 صبح
من اونطور که تو msdn خوندم نمیشه arraylistدو بعدی داشت.در واقع چیزی جز array برای آرایه های دو بعدی تدارک دیده نشده. واسه تعریف array هم باید ماکزیمم اندیس هاش رو بدونید.

Alen
چهارشنبه 06 شهریور 1387, 08:29 صبح
من تا به حال خيلي اينطوري عمل كردم كه arraylist داشته باشم كه هر كدوم از خونه هاش خودش يه arraylist ديگه باشه با همون روشي هم كه گفتم دسترسي پيدا مي كنم ، حالا به نظرتون اين يه arraylist دو بعدي نيست ؟
البته نميدونستم اينقدر هزينه بره
يه سوال اين هزينه چه قدره ؟ يعني راحتي كار با arraylist ها به اين هزينه مي چربه يا بالعكس؟
ممنون مي شم اگه جواب بديد

mehdi.mousavi
چهارشنبه 06 شهریور 1387, 10:24 صبح
يعني راحتي كار با arraylist ها به اين هزينه مي چربه يا بالعكس؟
ممنون مي شم اگه جواب بديد

سلام.
این هزینه باید در شرایط متفاوت اندازه گیری بشه، تا بشه اونو بصورت مقداری درش آورد. اما این مساله ارتباطی به سادگی کار با ArrayList ها نداره. استفاده از Generic List ها هم به همون میزان ساده هستش، اما چون اول کار تعیین میشه که Data Type خونه هایی که در List قراره نگهداری بشن، چیه، دیگه دسترسی به خونه های یه List باعث عمل Boxing/Unboxing نمیشه و کارایی ارتقاء پیدا میکنه.

salamlar
یک شنبه 18 فروردین 1392, 12:24 عصر
سلام عیدتون مبارک
من میخام یه عکس رو بریزم تو آرایه دوبعدی بعدش آرایه رو تغییر سایز بدم(مثلا [4,4] رو بکنم [8,10] یا [2,2] ) و بعدش رنگهای غیر معمول و غیر استاندارد رو با رنگهای استاندارد و مشهور جایگزین کنم.
دوستان تو این فروم (سوال در مورد زایش آرایه ها در C#‎‎‎‎؟ ) به آدرس زیر:
( http://barnamenevis.org/showthread.php?388235-%D8%B3%D9%88%D8%A7%D9%84-%D8%AF%D8%B1-%D9%85%D9%88%D8%B1%D8%AF-%D8%B2%D8%A7%DB%8C%D8%B4-%D8%A2%D8%B1%D8%A7%DB%8C%D9%87-%D9%87%D8%A7-%D8%AF%D8%B1-c-%D8%9F )
خیلی کمک کردند(آرایه یک بعدی) واسه بحث های تکمیلی دیدم آقا مدیر پیشنهاد جالبی دادند گفتم منم مشکلم رو مطرح کنم. ببینیم میشه منم استفاده کنم(واسه بزرگ کردن و تغییر سایز آرایه ها بطوریکه خانه ها یک در میان اضافه بشه و میانگین خانه های قبلی و بعدی یا سایر همسایه ها تو خونه های اضافه شده قراربگیره(واسه آرایه یک بعدی دوستان گفتن الان واسه آرایه دوبعدی میخوام))) و جایگزینی رنگ؟؟؟؟؟؟



تشکر


ممنون میشم یه مثال کوچیک هم بزنید