کلاس
ذیل میں کوڈ پر غور کریں:
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
۔ اور یہ یادداشت اور وقت کا اضافی ضیاع ہے۔ دوسری مثال میں، اس مسئلے کو کلاس کا استعمال کرتے ہوئے حل کیا جاتا ہے StringBuilder
۔ ہم کلاس کا ایک آبجیکٹ پہلے سے تیار کرتے ہیں StringBuilder
، اور پھر اس طریقہ کو استعمال کرتے ہوئے append
جو ہم سٹرنگ بناتے ہیں ہم تخلیق کردہ آبجیکٹ کے مواد کو تبدیل کرکے StringBuilder
، لیکن آبجیکٹ کو دوبارہ تخلیق کیے بغیر۔
GO TO FULL VERSION