ڪلاس
هيٺ ڏنل ڪوڊ تي غور ڪريو:
String
ناقابل بدلائي تار ٺاهي ٿو. ان جو مطلب اهو آهي ته جيڪڏهن توهان ڪنهن به آپريشن کي سٽرنگ تي لاڳو ڪيو يا هڪ اسٽرنگ تي آپريشن ڪيو، نتيجو هڪ نئين اسٽرنگ هوندو. جيڪڏهن هي نئون اسٽرنگ ڪنهن به متغير کي نه لڳايو ويو آهي، آپريشن جو نتيجو گم ٿي ويندو. ان جي مطابق، اهڙين تارن تي آپريشن لازمي طور تي نئين اسٽرنگ جي پيدائش کي ڏسجي ٿو. ۽ انهي جو مطلب آهي اضافي ياداشت ۽ پروسيسر جي وقت جي قيمت. جيڪڏهن هڪ اسٽرنگ تي تمام گهڻيون آپريشنون آهن، ته پوءِ اهو اڪثر ڪري متحرڪ اسٽرنگ استعمال ڪرڻ لاءِ وڌيڪ ڪارائتو هوندو آهي، جيڪي ڪلاس پاران لاڳو ٿين ٿيون StringBuilder
.
String s = "Some text";
int count = 100;
for(int i = 0; i<100;i++){
s+=i;
}
**********************
StringBuilder s = new StringBuilder(110);
int count = 100;
s.append("Some text");
for(int i = 0;i<count;i++){
s.append(i);
}
مٿي ڏنل ڪوڊ ساڳيو مسئلو حل ڪري ٿو. جڏهن اسان هڪ ڏنل اسٽرنگ ۾ 100 نوان سب اسٽرنگ شامل ڪندا آهيون. پهريون مثال هن مقصد لاءِ ڪلاس استعمال ڪري ٿو String
، جيڪو ايترو ڪارائتو نه آهي، ڇاڪاڻ ته هر ذيلي اسٽرنگ جو اضافو هڪ نئين شئي جي تعمير جو سبب بڻجي ٿو String
. ۽ اهو ياداشت ۽ وقت جو هڪ اضافي ضايع آهي. ٻئي مثال ۾، هي مسئلو حل ڪيو ويو آهي class استعمال ڪندي StringBuilder
. اسان اڳ ۾ ئي ڪلاس جو هڪ اعتراض ٺاهيندا آهيون StringBuilder
، ۽ پوءِ اهو طريقو استعمال ڪندي append
جيڪو اسان کي گهربل اسٽرنگ ٺاهيندا آهيون، ٺاهيل اعتراض جي مواد کي تبديل ڪندي StringBuilder
، پر اعتراض کي ٻيهر ٺاهڻ کان سواءِ.
GO TO FULL VERSION