0 امتیاز
قبل در برنامه نویسی توسط (1.1هزار امتیاز)

آیا می توان در جاوا سایز یک آرایه را بعد از ایجاد تغییر داد؟ می خواهم با حفظ عناصر قبلی که در آرایه اضافه شده است سایز آن را افزایش دهم.

1 پاسخ

0 امتیاز
قبل توسط (1.1هزار امتیاز)

در زبان برنامه نویسی جاوا پس از تعریف آرایه و مشخص شدن سایز آن سینتکسی برای تغییر سایز آن وجود ندارد، ولی با استفاده از reflection می توان این کار را انجام داد:

private static Object resizeArray (Object oldArray, int newSize) {
   int oldSize = java.lang.reflect.Array.getLength(oldArray);
   Class elementType = oldArray.getClass().getComponentType();
   Object newArray = java.lang.reflect.Array.newInstance(
         elementType,newSize);
   int preserveLength = Math.min(oldSize,newSize);
   if (preserveLength > 0)
      System.arraycopy (oldArray,0,newArray,0,preserveLength);
   return newArray; 
}

// Test routine for resizeArray().
public static void main (String[] args) {
   int[] a = {1,2,3};
   a = (int[])resizeArray(a,5);
   a[3] = 4;
   a[4] = 5;
   for (int i=0; i<a.length; i++)
      System.out.println (a[i]); 
}
قبل توسط (1.1هزار امتیاز)
بله این بهترین راهی بود که به دهنم رسیده بود. اگه راه بهتری میدونید لطفا بگین. تشکر.
قبل توسط (365 امتیاز)
+1
نه راه بهتری بلد نیستم. در واقع فکر کنم همانطور که گفتید راهی برای افزایش طول همان آرایه نیست. متدی که نوشتید عمومی است و هم برای آرایه ای از اشیاء (مثل آرایه ای از رشته ها) و هم آرایه ای از انواع اولیه (آرایه ای از int) کار میکند.

سوالات مشابه

0 امتیاز
1 پاسخ 445 بازدید
+1 امتیاز
1 پاسخ 728 بازدید
0 امتیاز
0 پاسخ 586 بازدید
+1 امتیاز
1 پاسخ 727 بازدید
0 امتیاز
1 پاسخ 662 بازدید
0 امتیاز
1 پاسخ 703 بازدید
0 امتیاز
1 پاسخ 374 بازدید
سوال شده 10 سال قبل در برنامه نویسی توسط Saeed Zarinfam (1.1هزار امتیاز)
0 امتیاز
1 پاسخ 786 بازدید
+1 امتیاز
1 پاسخ 1.5هزار بازدید
...