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 پاسخ 352 بازدید
+1 امتیاز
1 پاسخ 586 بازدید
0 امتیاز
0 پاسخ 466 بازدید
+1 امتیاز
1 پاسخ 624 بازدید
0 امتیاز
1 پاسخ 568 بازدید
0 امتیاز
1 پاسخ 569 بازدید
0 امتیاز
1 پاسخ 277 بازدید
سوال شده 9 سال قبل در برنامه نویسی توسط Saeed Zarinfam (1.1هزار امتیاز)
0 امتیاز
1 پاسخ 686 بازدید
+1 امتیاز
1 پاسخ 1.4هزار بازدید
...