View Full Version : سوال: در نظر گرفتن یک آرایه پویا
Aerox1
یک شنبه 13 اسفند 1391, 19:15 عصر
سلام . میخواستم یک آرایه به صورت n*3 به صورت arraylist در نظر بگیرم . در واقع با هر بار add کردن یک سطر جدید بهم بده . هر کار میکنم error میده ! دستورش واسه ساختن همچین چیزی چیه ؟
Hybrid
یک شنبه 13 اسفند 1391, 21:24 عصر
سلام ؛ خودتون میخواین همچین چیزی رو بسازین یا نه از ArrayList استفاده کنید ؟ خود ArrayList با هر بار اضافه کردن آیتم به طور خودکار رشو پیدا میکنه ؛ یا میتونید از متد ensureCapacity واسه اضافه کردن ظرفیت استفاده کنید .
اگه خودتون هم می خواین این کار رو انجام بدین راحت میشه این کار رو انجام داد . لطفا کدتون رو قرار بدین تا بهتر بشه راهنمایی کرد . یا سوالتون رو به صورت واضحتر بپرسید
Aerox1
یک شنبه 13 اسفند 1391, 22:55 عصر
ArratList<Integer[][]> A = new ArrayList<Integer[][3]>();
من ماتریسی رو میخوام که 3 تا ستون داشته باشه با تعداد سطرهای متغیر . کد بالا رو هم ایراد میگیره
pedram.11
دوشنبه 14 اسفند 1391, 01:44 صبح
سلام به این نوع متغیر آرایه دندانه ای میگن:
Integer[][] A = new Integer[3][];
Ehsan rashydy
دوشنبه 14 اسفند 1391, 08:13 صبح
ArratList<Integer[][]> A = new ArrayList<Integer[][3]>();
من ماتریسی رو میخوام که 3 تا ستون داشته باشه با تعداد سطرهای متغیر . کد بالا رو هم ایراد میگیره
این کدی که نوشتید مشکلش اینه که موقعی که میخواید یه ArrayList از آرایه درست کنید، ArrayList کاری به این قضیه نداره که آرایه طولش چقدر باید باشه، ArrayList فقط میدونه که قراره آرایه نگه داره( داریم در مورد طول آرایه صحبت میکنیم، نه تعداد بعدهای آرایه)
از طرفی این کدی که شما نوشتید یه ماتریس با 3 ستون درست نمیکنه(اگه فرض کنیم کد درست باشه)، عملا یه مجموعه از ماتریسها با 3 ستون درست میکنه،
2 روش برای ایجاد ماتریس با 3 ستون:
ArrayList<Integer[]> dynaMatrix = new ArrayList<Integer[]>();
Integer[][] staMatrix = new Integer[n][3];
فرق اصلی dynaMatrix با staMatrix اینه که ماتریس اول داینامیکه، یعنی هم تعداد سطرها، هم تعداد ستونها زمان اجرا میتونه تغییر کنه، اما دومی اینطوری نیست، تعداد سطرهاشو(متغیر n) از یه جایی میخونی و یه بار ست میکنی، تعداد ستونهاشم که همواره 3 تاست!
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.