Синф
Рамзи зеринро баррасӣ кунед:
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
, ки он чандон муассир нест, зеро ҳар як иловаи зерсатр боиси сохтани an objectи нав мегардад String
. Ва ин сарфи иловагии хотира ва вақт аст. Дар мисоли дуюм, ин масъала бо истифода аз синф ҳал карда мешавад StringBuilder
. Мо пешакӣ an objectи синфро месозем StringBuilder
ва сипас бо истифода аз усул append
сатри лозимиро бо тағир додани мундариҷаи an objectи сохташуда ташкил мекунем StringBuilder
, аммо бидуни аз нав сохтани худи an object.
GO TO FULL VERSION