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 پاسخ 260 بازدید
+1 امتیاز
1 پاسخ 443 بازدید
0 امتیاز
0 پاسخ 373 بازدید
+1 امتیاز
1 پاسخ 507 بازدید
0 امتیاز
1 پاسخ 450 بازدید
0 امتیاز
1 پاسخ 457 بازدید
0 امتیاز
1 پاسخ 226 بازدید
سوال شده 8 سال قبل در برنامه نویسی توسط Saeed Zarinfam (1.1هزار امتیاز)
0 امتیاز
1 پاسخ 591 بازدید
+1 امتیاز
1 پاسخ 1.2هزار بازدید
...